[ ... ]
I tend to approach it from the other direction: is that handling of an
island as whitespace a satisfactory abstraction or not?
It's not an abstraction at all. It's a trick, a device to make
adaptation to the island-world easier. That text between two islands
of the same chain should be invisible for the mode that's active in
the chain -- that is an abstraction. But no one says that text must
be treated as whitespace -- this is simply a convenient means to reach
your ends. However, other means towards the same end might be
available, onces that don't overload [:space:] with an entirely alien
meaning.