Don't mean to be a pain about this, people, but...
Are you the type of programmer who sees a framework, or even a tool, and says "oh - that won't work for us. Our code has too many special cases" - ?
So what makes your special cases so special? I mean, really? More of your special cases fit into known programming patterns that you may want to admit.
Working in database application development, I hear this all the time about the database schema. "Our data is too complicated to be stored in a relational database." Oh - is it?
Look, you spend the time choosing your runtime tools carefully, and of course your team's software development style is part of that choice. But once you've made that choice, use it to its full. Don't fight it after you've committed to it.
That means that your typical practices (midtier caching comes to mind) may need a makeover. Don't rationalize your force of habit by calling it a 'special case.' There's nothing new on this earth, even in computing. Someone has already done a lot of your thinking for you. Use it!
And if you still think you have such a 'special case,' consider this: the people who use the tools, the framework, the server will keep using that tool through several of its versions. They aren't spending each upgrade wrestling with the old workarounds they used to circumvent the programming model. Is this what you want to do to get the latest killer feature from Spring, or JPA, or Oracle?
Don't go there. Say to yourself: this is not a special case.