Well I think it's a number of issues. First, I don't know for certain, but there may be a limitation on ATC systems being limited to four digits in the flight number. One of the issues with the legacy ATC screens, not sure how this is being addressed in NextGen, is they limited symbol size/length. This is the same reason they limit the length of the aircraft code. They try to limit screen space needed to display data for each flight. Second, I think the categorization of the flight numbers (e.g., first digit aligning to different regional providers and code-shares) within each airline's system limits the numbers that they can allocate to mainline flights, but you probably didn't need me to tell you that. Seems like a simple problem, but it's probably written into a lot of old legacy databases. In my experience, when we've gone through system migrations we try to come up with cheap and easy solutions for temporary issues. This might be one of those issues. The timeframe prevents cost recovery for more complex modifications.
Not from a point of insider knowledge, just my thoughts based on experience a little previous involvement with some similar systems.