in my experiencefor the past couple of years, I have been using various system utilities to deal with application switching. I like command-tabbing over to other apps, but I don't like the clutter. I typically run with 6 to 10 applications open at any time, and those windows add up. ASM offered a pretty flexible solution for hiding applications on switch. So, when I go to BBEdit from Safari, the browser will get hidden, and BBEdit will be un-hidden, which keeps the screen clean. ASM let(s) you choose applications that will be hidden in various ways...
Now, some of you Windows users may be thinking "that sounds sort of like SDI." And you are right, in a twisted way, I am emulating a Windows GUI paradigm; Single Document Interface. This is used in the current AOL clients for windows, and used to be used in Photoshop, but I don't know if that's the case anymore. Anyway, the idea is that ne master window contains all of the other windows for the given app, so when I click on the task bar for another SDI app, it fills the screen.
The vital difference between my SDI and MSFT's si that there is no containing window. the windows float over the Desktop and Finder windows. This makes drag and drop possible from the Finder to the currently selected app, and makes entering IMG tags in BBEdit SO MUCH EASIER.
Now, go have a look at Exposé and see how it might be useful way of dealing with window clutter and application switching. And think about how many shareware application switchers (here, here and here) may be rendered useless, or at least, less attractive.