Keep in mind there are a LOT of apps deployed on systems with SELinux with few, if any, tests
Further, the divide between ops and developers in many cases leaves this as an unsolvable problem - it's not the dev's job to do sysadmin, and ops lacks the expertise (or time) to comprehensively analyze the code base
You're right that this makes the app poorly behaved, but if that can't be addressed then... permissive mode it is