This is a bit off topic, but could you please explain, or link some source that explains why it should be considered as ‘very bad practice’? (no sarcasm, really interested)
I use it to generate the main.css file on the fly from a .less source file. The main.css file only gets re-generated if the original less file is modified, otherwise no action will be taken and main.css will be enqueued normally.
One important reason: The theme should stay untouched. The user should never alter the files from a theme or plugin if is developed by somebody else.
You say that this is not a problem, because nothing is lost, but I can say the opposite. Even if you modify just a simple stylesheet, this means you’ve modified everything. Why? I tell you. To understand it better, I’ll give you an example:
Suppose that a user use your theme, he loves it so much that decided to purchase another 3 licences for other 3 sites. Now that uses is going to use your theme on 4 sites, all these 4 sites share similar content so it makes sense to use the same theme. Also all these 4 sites are from one WordPress Multisite installation. Now, you see where is the problem? No? Ok, let’s continue then.
That user want to use your theme on all these 4 sites but on each site to have a different color scheme. That means that he would adjust the settings on each site from admin.
Ifthe theme will save the generated CSS in its folder, then the user will not be able to have a different color scheme for each site because every time he adjust the settings for a site it will overide the generated CSS for other sites.
That’s why you should save the generated CSS in wp-uploads folder with a unique stylesheet name for each theme and website.