@evildictaitor: I suspect that the context is important here -- you seem to work on lots of smaller project
Not really. Six of the projects I'm a major contributor for have more than a million lines of code. Part of the reason for the design choice to move to everything is a library is to keep Intellisense from getting cluttered by classes and functions that aren't formal APIs into the code, massively increasing code findability.
Actually, one of the reasons I insisted we went down this path was that I saw a huge push during the Vista timeframe at Microsoft to move their code into a fixed dependency model, and this was one of the ways that one of the teams tried to solve it (for C++, not C#). That codebase was Windows, so I'd certainly not say that carefully managing dependencies and scopes by forcing stuff into libraries can only work for small projects. I tried using it myself for a short while and it was so useful for my own projects that we trialled it at work and it was a massive success.
Anyway, this isn't supposed to be advice, it's just a direct response to the question "how often do you reuse your code?". My answer is often.