> by definition you have flat memory.
No, not at all.
It would be more accurate to say:
"by definition you can have flat memory, if you want, but you don't have to."
But everybody wanted to.
In x86-32 you can absolutely have segments if you want. In practice, for an easier but far more insecure life, everyone opted for "one big segment pls kthxbye".