Sometimes you do break the game in some way (not compiling, balance out the window, nonsensical bugs, etc) when you’re doing a major overhaul, but those should be limited to branches of the main game, the functionality and balance of the game should be restored by the time the changes are merged.
The main reason for this is that when people start new branches to add functionality, the game needs to be in a working state. Also it’s nice to have a mostly working latest version so people can give feedback on it. If we regularly broke the main game code, people would be discouraged from using it.