Cleaning a Drupal database from anything which is not nodes, taxonomy and other regularities?
I don't think that this is possible because the core can not know what you need before you have it configured (fields, nodetypes etc). 

You would need kind of a transaction checkpoint at the DB structure, and the possibility to rollback every structure manipulation and data therein that has happened after that point.

I usually have a system besides of my content staging system to test contributed modules. Copy content stage to dev, apply module on dev, test, rollback or move the module to content stage.

If you are the module dev yourself - make up your correct uninstalls :-)