I think we all agree it shouldn't. If I remember correctly, the code had special cases for emergency services just so this wouldn't happen.
That said, if I install a carrier's app on my tablet that enables calling and adds the necessary emergency services support, I don't see why it couldn't be used as the fallback for emergency services. Sometimes I have WiFi but no mobile signal (VoWiFi is finicky as hell) so if I need to reach emergency services, an "internal dialer only" approach would actually prevent me from getting help more than it solves the problem.
The code was buggy and not tested enough. Teams didn't specify that it could handle emergency calls. The method that sorts the apps that are capable of dealing with emergency phone numbers simply forgot to verify that the numbers in the list were all emergency capable: https://medium.com/@mmrahman123/how-a-bug-in-android-and-mic...
If I install a dialer, I expect it to be able to dial 112/999/911. I don't expect it to try to re/activate the vendor dialer I disabled, switch my system settings to give it its call permissions back, and call the number. Hell, with multiple dialers, this behaviour may even cause a loop by itself.
Bugs in the core framework can't be fixed by hardcoding specific dialers, you'll only hardcode the buggy, often barely updated dialers. Even after my phone goes EOL, I can fix problems like these by simply installing a better, fixed dialer, and that's a pretty good feature in my opinion.