Bad filament with changing diameter causes an uneven flow of plastic out of the nozzle. Besides buying very high quality filament (do we really want to be dependent on professional Filament producers?), what other ideas and methods could be used to mitigate the differences in diameter?
Could a pellet extruder be a solution?
I am only going to answer the part of the question about how to improve the results from low-quality filament:
There have already been projects going on dealing with the issue of varying filament diameter. A sensor that detects the filament's diameter and sends its value to the printers firmware can compensate for the varying volume of the filament pushed into the hotend by simply changing the extrusion speed. You could think of an extrusion multiplier or a change in the steps/mm value. Of course this has to be calibrated for the distance the filament needs to travel from measurement to hotend.
A good first read can be found in the following project:
And the corresponding Thing page: