One downside you will quickly notice is your markup becomes much less semantic and a lot more cluttered with CSS classes. This is simply by virtue of how all "grid" CSS frameworks like this work - they set up a ton of generic styles that are impossible to be symanticized. With blueprint you start to see a lot of classes that look like "span-XX last" or "push-XX" or "pull-XX".
There are a number of ways to get around this, however. The first is a tool that comes with blueprint that lets you set up a yml configuration which maps semantic ids to these generic CSS classes. For instance you can say "#footer => span-24 last". This will then generate the CSS in a semantic manner so you can continue using id references in your XHTML.
The second way, and this is the approach that I would highly recommend, is to go ahead and use some sort of CSS metalanguage/compilation tool such as SASS (Syntactically Awesome Stylesheets - http://haml.hamptoncatlin.com/docs/rdoc/classes/Sass.html). Chris Eppstein has done a fantastic job with the Compass CSS Framework (http://wiki.github.com/chriseppstein/compass) which builds on top of SASS, which allows you to do really amazing things with CSS.
The compass framework he has built allows you to do things like define CSS constants (colors, font sizes, etc), perform unit arithmetic, as well as define abstract classes or groups of properties called "mixins" which allow you to abstract out a lot of your repetitive CSS properties. It is also a whitespace sensitive DML which makes the highly nested nature of CSS selectors a breeze to work with. It also already comes with modules for blueprint and other grid frameworks!
I would check out his talk about it here if this sounds interesting to you:
HTH!