Is there anything to stop the core devs saying we want unlimited bitcoin and changing the code to allow it. I mean, 21 million isn't much.

This cannot be changed by the developers.
If a decision like that will be heard we will possible have a hard fork and two separate chains.
And also 21m isn't much but this is said to be the main advantage of Bitcoin. Scarcity is a good thing for the cryptocurrency industry.
Of course it can be changed by DEV. The coding team wants it for any reason to make more BTC, the miner support new wallet. et voila 10x more max bitcoin.
The community has nothing to decide in Bitcoin, as far as the big mining pools and DEV agree.
Do you know who do you mean with name of dev? So far i know, They can not change the maximum supply of bitcoin i.e 21.000.000 virtual coins. Dev only do developing chains of bitcoin (blockchain), halving, etc.
As you can see in all Altcoins, the maximum supply is only a number in code, just mentioned in one of the .cpp files.
Change it, compile new, voila 10000000000000000000 bitcoin max supply. Then you get a fork of course. But as I say, for any reason support by miners will change it.