Create an outbound rule which is for 4 digit numbers only (I am assuming you mean 1919 as an internal extension as you can only do this if you have a trunk, such as an external extension across a bridged PBX) and have another rule (for example) for area code 8-10 digits.
I see your point, Outbound rules are for external calls only so you must have a trunk (SIP, PSTN or Bridge) so ignore having a rule for 4 digits and just have a rule for numbers starting with 1 (in your case) but only the length of area code numbers in your country (8-10 in my example).
So long as you do not have a rule that matches 4 digits or a "catch all" for any digits you should be OK.
You have to keep in mind, that unlike older, "legacy" systems, be it a PSTN switch or PBX, that would collect digits until it had enough to make a decision on routing the call, with VoIP. all digits are sent as a whole, and then processed at once. The PBX knows what the complete number is. So 1919 and 1919XXXxxxx are completely different.
As far as using an outoing line prefix...it is a mater of preference. Many users want to be able to dial in exactly the same way as they did on the "old" system, so why make them change? in other cases, when multiple routes are involved, now, or in the future, it allows calling flexibility...9+ for most calls, 8+ for calls over a bridge trunk, or perhaps a premium rate provider.
Not sure how the emergency call routing works, or if you have it set up, but I think, atleast in the US, you have to make emergency services accessible without extra digits.
So, not 9911 - just 911 - needs to get thru.
Many enable dialling using both methods, 911 & 9911, so that any attempt will get through. Employees may be used to dialling a 9 first, visitors , may not.
Based on Karis law you MUST support 911 without any prefix (commonly 9).
As leejor said, for the existing users they might be used to 9-911 so add both as an option in the emergency numbers section.