I tested this in Creative, and it will work in all gamemodes, but it is a much bigger problem in Survival.
There is a game-breaking bug (but not a game-crashing bug) involving the Wither. It can destroy End Portal frames as well as the portals themselves. This is because the Wither is not coded to be unable to destroy blocks flagged as unbreakable, just Bedrock in particular. This must be fixed. As you might imagine, this bug could be exploited on a multiplayer survival server for griefing. The only way server owners can avoid this is by disabling mob griefing altogether which isn't desirable for servers that want people to have to defend their homes against creepers.
If the stronghold portal is griefed, an op can rectify this by building a new one. But, the exit portal in the End cannot be restored in-game. As a result, if it's griefed players have no way out of the End except falling off of it. People could use an op-placed Nether Portal to go to the Nether and back to the Overworld, but it wouldn't send them back to their individual spawns even with a Command Block. Also, the Nether Portal could be destroyed by simply using a bed next to it because of its nonexistent blast resistance.
This is a side-effect of how exit portal placement is coded. Whether the End Portal itself can be placed in the world depends on the bossDefeated boolean being true. If it's false, it won't place even if you put down frames or /give yourself the portal itself and place it. This boolean is only set to true right after the Ender Dragon dies and after the portal is placed it sets itself to false again. Having it dependent on that boolean at all is pointless, since Survival players can't create their own End Portals without cheats anyway.
The boolean itself is useless. While it could be used for something else later on, any such feature wouldn't work with old maps unless it could retroactively check if the dragon was dead.