There's going to be a lot of overhead with this kind of thing, but did you have another reason?
All that code is executing on every partial call. So, a very brief list of reasons not to use this in production:
1. overhead
2. complexity
3. debugging
4. don't fight the language
edited to add: I just want to emphasize that I think it's a really, really neat hack!
edit: In other words, "Don't fight the language" as another commenter said.
There's going to be a lot of overhead with this kind of thing, but did you have another reason?