* start by using it as it is intended. Save lots of time by being up and running quickly.
* find a flaw.
* realize that the workaround is more work than rewriting a piece of the framework.
* stop using that part of the framework, but continue to use the rest of the code that you still haven't had to write.
I think a lot of us have come to the same conclusion as this author: the abstractions frameworks provide are often too high level. Very quickly the needs of your project cannot be served by their generalizations. Especially in a language like Python, it's often easier just to roll your own systems.
However, starting off with a framework is a great way to get off the ground quickly. If you were to write everything from scratch from the beginning, you might burn out before you even produce anything usable.
Personally, I think CherryPy is the way to go. You're probably not going to need to rewrite HTTP , so that's an abstraction layer with which I'm comfortable. Everything else will need to be easily customizable for your project.
 Unless the threaded model doesn't work for you, like it doesn't for our chat backend.
No, but it might be an argument to consider frameworks that make it easier to replace parts as they become more trouble than they are worth.