It's actually very hard to keep two copies of your library in sync, what seems like a simple action in our mind is completely different in computer and programming logic.
Just take your Playlist example - the file location of the music in your player is DIFFERENT to that of the file location on your host PC, eg say in the player it is "\music\Beatles\" but on your PC it maybe "D:\my favourite music\best stuff\Beatles", even if the folder structure is exactly the same, due to different OSes (Linux based systems have no drive letter assignments while Windows does for example) just missing the D: drive assignment already means the Playlist is unless on the PC, so you cannot simply copy over the Playlist file from the player to the PC because then the Playlist will not be pointing to the correct location of the file and throw an error. So how will the syncing know to create an exact copy of the playlist on the PC? You'll have to keep another set of data and perform a look up and create what appears to be the same Playlist on the PC but its actual code underneath is entirely different. Giving a rating to your music is the same - you'll have to keep track of the change on the player and then change the corresponding file on the host PC, then there is the matter of whether you actually alter the file itself, or do it like iTunes where the changes are kept on a separate file - which then makes migrating to a different system impossible etc. And last but not least as I said to keep this tidy, drag and drop function will most likely have to be removed.
There are a LOT of reasons why complex bi-directional sync is not done on nearly all non-iOS DAPs, the logic is HARD and isn't compatible with certain features that another set of people want (like drag and drop and folder play).