This pretty much sums up why I'm sometimes hesitant to use frameworks: should my problem evolve past the boundaries of the framework it can become more of a pain to use the framework than the raw constructs.
When it's no big deal to stick to the framework's boundaries, or the framework interoperates well, clearly and easily with custom lower-level code, then it seems wise to use such a framework.
The latter--interoperability with lower level code--does not seem to be true for ASP.NET based on my brief experience.