"Islands" are really nice for this. The highly interactive pieces are usually only a small part of the app - just mount a component there if it's suitable. You don't need a full blown SPA

Islands probably have some runtime performance benefits, but the dev experience and build-time complexity is probably just as high or higher than most JavaScript SPA setups.

IMO no, because with a SPA everything has to be a SPA, which is incredibly inconvenient.

The benefit of the island is only the island has to be a SPA. The rest can be SSR.