Like many Pythoneers I suspect, I find the current join() method implementation to be rather odd. Typically, to insert a space between a sequence of strings, you have to use the construct ' '.join(seq). A more intuitive approach is seq.join(), which employs a space as separator by default.
Another way of looking at this is to realise that we are using inverse operations: seq.split() <=> seq.join(), which is what one would normally expect I believe. The current way of applying join() to a string just doesn't make semantic sense.
The elements of the sequence in question have to be strings of course, but that is true in both cases.
I am tempted to raise a PEP for this, but I haven't done that before, and there may well have been prior discussions on the issue that I am not aware of. Further, changing the type that join() applies to would break existing code.