Recruiting and keeping top QB prospects is difficult. A talented backup doesn't want to sit for 3 years or possibly never even get a chance to see the field because of an entrenched starter in the same class. I think ideally a coach would want to start a QB only their Jr and Sr seasons. That situation would allow the younger QB corps to have a chance to see the field sooner and have time to develop in the program.
When you get a situation like Heaps where he was true freshman and starting, I image it was probably pretty difficult to recruit a quality non-mission QB at that point in time. What good recruit would want to sit behind heaps for 3 years to only get a chance to start his Sr season? By the time the Sr seasons rolls around the coaching staff might want to go with a younger guy that can start multiple seasons.
The good and bad for BYU is the mission thing. It wreaks havoc on scheduling recruits but at the same time it can buy some time for a QB prospect to wait out the current starter. So between missions, redshirts, non-mission recruits, I can image keeping the QB pipeline at BYU in order is a very difficult thing to do.