It's not clear to me why "favorites" is in any way better than ratings, other than perhaps a simpler interface. It sounds like favorites is just a rating system which only allow ratings of 0 or 1? This sounds like a change which should be limited to the User Interface.
I believe that ratings (0-5 seems common) are appropriate. Perhaps a rating of 0-3 would be shown as an "unselected" favorite, 4-5 shown as a favorite; when checking a favorite box, set the rating to 4, when unchecking it, set the rating to 3? Something along those lines would let ratings coexist with a UI supporting "favorites."
Having used iTunes for a while, it's quite easy to create a dynamic playlist of songs rated, say, 4 or better, which sounds like the equivalent of selecting "favorite" songs. But, I'd also rate songs with problems (poor rip, etc.) as 1 so I could identify and fix them later. I'd use 2 for things like "audience" tracks in a live album, so they wouldn't play in a mix, but would when playing the album, etc. 3 is "OK," 4 is "I like this," 5 is "I really like this." 0 means unrated.
I agree that the tag mentioned
here is appropriate. Thanks for that, I wasn't aware of a tag which allowed separate ratings per user. If this POPM tag were used, then a 0-5 rating system would be multiplied by 50 inside the tag (0=0, 1=50,...5=250).
What would also be great would be some form of dynamic playlist support (genre=x, rating>=4, lastplayed>3 months). This is one thing iTunes does right.
Finally, album ratings. This, to me, would be a special case. Only set unrated (rating=0) tracks when setting the rating (or favorite) for an album. Otherwise, you'd end up changing already existing ratings. When displaying an album rating, it should be the average of all rated tracks in the album.