I don't know if it has been discussed in the past. Qgis data providers can only load native compiled libraries (.so, .dll, etc) that offer the required interface. Is there anything blocking to the possibility of having python data providers? Would it be possible to have them loaded along the native ones, or dynamically through some API method?
For certain use-cases is may be sufficient to use a plugin layer. While not being an equivalent it serves its purpose.
At the moment the possibilities to write real dataproviders in python are still missing, but as far as I can remember, nobody brought up any technical restrictions concerning this so far.
QGIS is not written in python. It has python bindings for the C++ API. So if you use python code to read a data say ESRI Shapefile, it call the undelying cpp code from qgis .dlls and this intrun transfer to gdal and from there to shapelib.
Btw which python data providers you need?. Why do you care if the API calls from a .so or .dll