On-prem Exchange is usually fine. Migration is a pain, but for a mid-size org you can mostly just install it and use it. If you have multiple servers distributed globally and database availability groups and such, yeah, it gets to be its own thing, but that's because at that point you're huge and you're going to feel the pain no matter what platform you run.