About firing, it does seems fair to me: an employee can just quit at any time with no reason so a company should also be able to fire at any time.
They way I see it, asking for a return of "subsidies" should be regulated some more. But not outright banned since I can clearly see some situations where it would make sense.
I am able to add non-compete to a contract, it's just not worth it because the ex-employee will still be getting at least half a salary each month. I don't see why they should be banned.
In California non-competes are not valid, except for equity stakeholders. Silicon Valley is in California and clearly the lack of this privilege hasn't done much harm to businesses - quite the contrary, if the correlation with their success in the software industry says anything about it (the same argument could be made pro software patents, however software patents have only began to be seriously accepted / enforced recently - and I feel like Silicon Valley will see a decline because of it).
Also, I know of at least one instance in which the owner of a company asked his employees to sign their resignations, without a date added. He can fire anyone when he feels like it.
IT is one of the very few privileged classes in Romania. People working in IT are blessed. It does happen a lot less in this field and usually the fraud committed is more subtle, but it does happen. I was talking about my godson btw, he's not working in IT, but he is a knowledge worker and he has 3 years of his contract left.Also, asking for a return of "subsidies" is completely legal.
IMHO, non-competes should be banned completely. And I'm glad that you are unable to add it to your contracts ;-)