I'm not a game designer.
Baseball though has functionality that is more unique than football, baseball, soccer etc. Those games are dynamic in terms of toons constantly in motion. Those toons have to send and receive location coordinates to and from a server node during game play. Likely why EA and 2K use dedicated servers.
MLB though is HEAVY on user input with the toons in a relatively fixed location until the ball is in play. Once that happens, you are only allowed t move either your runner, or the defender near the ball.
Why am I bothering to hypothesize this? Because that's my theory why baseball is required to be peer to peer for connection. Baseball has so many more interactions between opponents and stats that need to be recorded and reconciled. When you take a shoot, it's only on you to record that stat. When you ground out, the defender needs a fielding attempt logged, batter result, pitcher record added in real time etc.
Because so many peer to peer interactions occur, it's naturally subjected to connection errors and thus a freeze off.
I'm telling you folks that freeze offs are being manipulated mostly by the offender. How? Excessive network traffic by them. What can SDS do about it? Next to nothing unless they start terminating frozen games that can't reconcile data exchange. That is very very very messy to resolve and have non offenders to be happy.
The ultimate solution is to review metadata on the disconnects received for dashboarding and reviewing W/L results with disconnect rituals.
That's messy AF also. Personally, I think it can be done because that data is static and you can query and isolate it. I don't think they have the manpower to do it though.