Absolutely, they can change this setting, in lots of different ways. Originally emergency services were set up by fields offered by the SIM. Occasionally these settings change, so an update mechanism had to be established.
- Android comes with a list of carriers and their required configurations; when the MNC and MMC provided by the SIM match a carrier on that list, Android uses the configuration from that list. This list updates with Android updates, and so SIM don't have to be reprogrammed.
- Modern SIMs just Java cards with a SIM app (especially if they offer IMS). The Java cards also have a secure storage element to hold subscriber keys and mitigate tampering to change these keys. They also contain signing public keys which is queried by Android whenever /Carrier Privileges/ are requested. That way, an app signed by a carrier can very against the carrier's SIM in order to get access to this configuration.
- There are remote configuration protocols, so Android will have a bare configuration for carriers just to fetch the latest configuration from them (to then use it).
This has been happening for quite a while. If you use(d) a carrier app for voicemail or setting up the service for the first time, you've used this. Except nowadays it seems Android actually /informs/ you about it.
https://source.android.com/docs/core/connect/uicc
https://source.android.com/docs/core/connect/carrier
One could probably write a rooted Android ROM that filters / requests user permission / logs changes to carrier settings, and there's utility in that since it may be a vector for espionage / traffic redirection (provided stolen keys or an exploit of the SIM's certificate storage machinery). SIM cards are usually directly connected to the CPU, not to the baseband.