I’m a developer who has programmed a game engine from scratch. The reason some settings can be applied instantly and some need to be “applied” is because of how it is coded. It takes extra work to develop a system that is able to change on the fly and still run efficiently. Also like others have said, it is much easier and safer (less likely to create bugs) if everything is wiped from memory and everything is loaded again with new settings.
Latest Answers