Ran into interesting scenario this afternoon when I was doing some house cleaning of my SQL Server 2008 R2 install. I had been bad last year, had 7 databases that were no longer in use, but hadn't detached them. Today I went through and detached them one by one, namely because I was running out of memory on my web server. I assumed as the databases were detached (one of them was actively being used all the way up to this morning) that it would gradually free cached queries that were no longer needed. To my surprise it didn't. Even after leaving only 2 databases, both only a few hundred rows it still hovered at the exact same memory usage. It took restarting the SQL Server service to bring it back down to 74mb.
Is there a reason for this design? If this had been a critical production environment I wouldn't have liked to have had to restart the entire service. Maybe Denali will "correct" this.