My understanding is that if you leave any slots empty, the substitution results are not well-defined. This should probably be clearer... maybe a warning should come up if you try to submit a lineup with empty slots (maybe it does already, I don't know).
Anyway, I don't think there's a bug here. If you really want the same player to play 48 minutes at a position if possible, then you run the risk of not getting the player you want in that position. If you want a decent player to come in the worst case scenario, set a sensible reserve, but risk not getting 48 minutes from your starter.
Possibly BB-Forrest can comment more, he's the expert.