I don't have an easy repro for this because it involves setting up a server, but I've noticed that if you add/remove workspace folders while the initialisation is happening, the workspace events never make it to the server, so the server ends up with the original workspace list that was transmitted in the initialize request, even though the client modified them prior to getting a response.
I think probably the client should queue up any workspace folder changes during initialization and transmit them after the initialized notification. It may also be worth calling this out in the LSP spec since it seems like something that could easily be implementing wrong elsewhere.