I'm just going to complain about things here. Nothing here should be read as willingness or intent to fix any of these problems.
Big concrete things
* The playback state management code is awful. I made it much worse when I made playing entry changes asynchronous. It needs to be rewritten.
* Albums, artists, and genres don't actually exist. Where they're needed, they're synthesised from query results by collecting all entries that have the same album/artist/genre string. This makes it impossible to distinguish between multiple albums with the same name, and makes it hard to handle compilations usefully.
* The C-structure nature of RhythmDBEntry makes it unattractive to add new fields, such as BPM, composer, etc. that could be used for some interesting features.
Small abstract things
* Support for playlists (on devices, mostly) is confusing and poorly structured
Big abstract things
* Play orders are dumb. Playing from the library (or from other large, varied collections) with shuffle enabled is useful; playing from audio CDs is sensible with or without; play order doesn't apply at all to radio streams or to podcasts.
* Showing you all 10000+ songs in your library isn't very useful, and showing you thousands of albums and artists in a list isn't much good either. Unless all you want is the satisfaction of knowing you have lots of music, I guess. (Another way this could be useful is if you want to pick a random selection out of your complete collection, e.g. to copy to your portable device.)
* Too much stuff has been added by stapling to the existing sort-of-generic source/entry framework, or hasn't been added because it's not clear how to staple it to the existing sort-of-generic source/entry framework.