Whilst it's a nice sound bite there are a number of problems with this approach.
Firstly, people always seem to lump STEM together as if as a collection of degree subjects they all have identical career prospects. They don't. They're quite markedly different. You're not going to become a marine biologist with a degree in engineering. You're not going to become an electrical engineer with a degree in chemistry. We need to look specifically at where the skills shortages are, not just the broad brush of "STEM", and see how we can tackle them.
Secondly, regarding the NHS, don't they already pay for the tuition fees of people studying medicine, nursing and other subjects allied to healthcare? If there's a shortage of doctors, it's certainly not because nobody wants to become a doctor...
Thirdly, on average STEM graduates have better prospects than other graduates. Therefore I think because of this we certainly shouldn't be paying less than our arts, humanities, social sciences etc. counterparts for our degrees. I think the system we have at the moment, where all degrees cost the same, is the fairest in that it does not persuade people to study something or not study something on the basis of cost alone.