I don’t think it is possible to create a rollback system which can run on all type of projects. The word “General Purpose Rollback” is just sounds stupid to me. As long as you don’t follow extremely strict rule sets I really don’t believe it is possible to use a ‘General Purpose Rollback’ system. Rollbacks are complex and complicated and needs to be able to adapt into dynamic situations.
If you decide to follow those extremely strict rule-sets defined by the developer of any ‘general purpose rollback’ framework than you are restricting your power and freedom which is definitely going to be felt in your game play.