A good first step might be to add UI interfaces to the code to manage the discount option group and values. The code would also need to be generalized to check if a discount group already exists and if so expose it to CiviEvent via the hook.
This way you get user level discounting without hacking core

I suspect doing the above is a 10-20 hour project. I think we need to start going down the path of extending CiviCRM in a user friendly manner without bloating the core functionality
lobo