What kind of assumptions would badly-written applications make to make themselves impractical to cross-build?
If you're working at a high enough level you're probably fine. Like the difference between being an auto mechanic and using the app to hail a ride.
https://wiki.debian.org/PortsDocs/New#Bootstrap
Perhaps in the future Debian will be able to have cross-build-only architectures, that have hardware too slow to build software.