The radio is currently some sort of OR+AND. Tags fetched from last.fm come with a count per artist - an artist can for example be 100% pop and 75% disco.
Let's say artist A is 50% sludge and 70% drone, and artist B is 100% sludge.
if you search for sludge, artist A gets a score of 50, and B gets a score of 100.
if you search for drone, artist A gets a score of 70 and B gets a score of 0.
if you search for sludge and drone, artist A gets a score of 120 and B gets a score of 100.
The scores are then weighted so that for sludge radio, songs by B would appear much more often (but A would appear sometimes). For drone radio, only A would be played. For sludge+drone radio, A appear more often but B will be pretty frequent too.
This is how it works right now:
https://gist.github.com/3389980. If you have idea's for a better query I'm all ears! I wrote this in the beginning of the project and haven't touched it since (except for adding genre merge into it recently).
I think it would be good to add a more advanced "Playlist generator" feature where you can specify a lot of criterias, like "give me top rated singer songwriter songs, female artists, from 1960-1970, that I've never listened to". It's totally possible (all that information is in the database) and it would be really handy. It's just a matter of finding spare time for coding it (which is fun and rewarding). And creating a nice interface for it (which is not my favorite job).
Starred tracks are supposed to correlate to "Loved tracks" at last.fm (I mean to integrate them in the future). There's not any immediate plan for a five star system on top of this, sorry. And yes, I'm kind of staying away from changing the playlist frame. It's the worst part of the UI and polishing it instead of replacing it isn't very appealing.