From my understanding, there is gdal installation that you can just access through the shell then there is the Python library version for it with 'Python bindings' that map to the original.
My current code is a mix of working in the GDAL Python library with the functions and classes in that library, and just calling os.system and running the gdal commands directly through that when that feels more convenient.
Is there a reason why that might not be good to do? This is shared code so I think there could theoretically be an issue with finding gdal/ogr if ran through shell with os.system, but by default it seems to work, and you would need to install gdal/ogr anyway to use the Python library.
I guess I'm only asking because it feels like this might be something I shouldn't be doing for some reason or would be frowned upon.