The iTunes smart playlist feature is remarkably easy to use and can do some pretty sophisticated things. But there's one more feature I'd like to have: I'll call it a weak reference, by analogy to a similar concept in computer programming languages.
Without going into mind-blowing detail – this isn't a post about programming languages – a weak reference is a way to refer to some object so that you're not required to keep it around. Think of bibliographic references from one book to another in the library. A strong reference from book A to book B would mean that you can't check out book A without also taking along B! In contrast, if it's a weak reference, then you might check out A, encounter the reference to B, and say "Oh well, I don't have that book with me right now."
Playlists (smart or not) are the primary way that I specify which songs are copied to my iPod. I have one dumb catch-all list "iPhone" into which I can dump anything I definitely want synchronized. There's a smart list "Recently added" that makes sure that any tracks added to the library in the past 3 months end up on the iPod. Also, anything with a star rating gets copied, so that will include lots of individual songs that are (for me) the highlights of their albums, for example.
Maybe you see where I'm going with this.
I want to create smart playlists to specify queries, and I'd like to sync those queries to my iPod, but I don't want membership in that list to be enough to pull all matching songs onto the player – it would just contain those that match the query and are on the device already by virtue of being on other lists.
Here's an example: I have a smart playlist on iTunes called "not classical" that simply excludes tracks from certain genres (classical, opera, speech, broadway) that I don't want to pop up in an otherwise wide-ranging shuffle. Now, if I specified that "not classical" should be synchronized to my iPod, it would pull in much of my library, and would not fit. However, if I could sync it as a weak reference, then I could still use the results of that query applied to tracks already on the player.