By the way... I've been meaning to write them up, but there are other reproducible client/server sync issues too. I have another one that is 100% reproducible that can nuke your whole library.
1. Connect a client to a server.
2. Wait a while
3. Switch the server to a different Library that references completely different files, or is blank (forgetting that in another room the client is still open and connected).
4. Make some changes on either machine. This can include if the client is just playing files (because the play counts incrementing will do it).
5. Switch the server back to the "real" library.
6. Wait a bit for sync.
That's from memory on my phone. If you have trouble reproducing this one, poke me and I'll do a better writeup with testing. I can reliably reproduce it, via a variety of mechanisms.
The rub seems to be, with this one at least, that the Client has an "existing" connection and doesn't know that the Library on the server has changed. It doesn't get booted off or anything, and "thinks" that the Server is still serving the same Library. Then, it gets "changes" (which amount to a wholly different Library) and it obliterates itself.
Then, when you switch the Server back to the "real" Library, the Client tries to sync this broken thing back to the Server, which happily obliges, and nukes itself as well.
It is actually
handy that the Clients keep working even if the connection to the Server is severed (so long as the media files are all still accessible locally, in fact, even playback keeps running). But, when you manually switch Libraries on the Server, it needs to be able to tell the Clients to "stop syncing" somehow. Or, they need to be able to detect that the name of the Library has changed, or something.
The only solution I've found is to shut down manually all connected clients before changing the active Library on the server.
For the Playlist thing, you just can't edit them or tweak any smartlists that involve Playlist Is Any rules while any Client is connected, or they break. I'm pretty sure this latter thing relates to how Clients reconcile Playlist changes with the Server.