One thing I wish QGIS had though is a command line interface. In order to rerun studies or results, I would like to be able to rerun data transformations and so on, but the current mouse-based way doesn't help there (if you have a loooot of pacience, you can also script it in python, but it would be insane to port every mouse click and action into a script).
https://docs.qgis.org/2.8/en/docs/user_manual/processing/scr...
The wonderful thing about the processing framework is how it gives bindings over several other GIS OSS tools like gdal.
In fact, you can run scripts developed using the Python interface without having to open the QGIS GUI at all. See the below gis.stackexchange question for a snippet on how to do this:
https://gis.stackexchange.com/questions/152762/error-algorit...
Completely agree though, it would be really nice to have a proper QGIS interface library.
You can do lots of geodata transformation using the wonderful GDAL suite and lots of QGIS' transformations are just wrappers around it anyway - in fact QGIS often tells you the exact GDAL command it is going to run (and then conveniently loads the results in the GUI).