So first bitcoind will support SPV mode then we separate the wallet?
Are the core and the wallet share any code (say, the p2p messages via
a sub-repo or something)?

bitcoind already supports SPV mode, that's how bitcoinj clients work. However the current wallet code doesn't use it, it integrates directly with the full mode main loop and doesn't talk P2P internally. Which is the fine and obvious way to implement the wallet feature. I'm not totally convinced it should become an SPV wallet given the complexity of doing that. But if you did want to separate the wallet code from the full node then that'd be the way to do it.

The question is; what does this buy us, and is it worth the potentially huge amount of time it could take? My gut feeling is we have bigger fish to fry. There's plenty of work to do just on the core consensus code, making Bitcoin Core into a competitive wallet as well would be an additional burden.

However I may be quite biased, as I am the maintainer of what is primarily a wallet library :)
 
I'm sorry, but I still don't know what Electrum has to do with all this.

People use Electrum as shorthand to mean "something a bit like the P2P network, but with trusted remote servers which build additional databases and thus support additional commands".