This is the policy.
I think the reason is that the computer sees the itin as a single flight making it difficult to change class of service half-way through. I once flew EWR-DTW-NRT-PVG "direct," and wasn't eligible for upgrade on the EWR-DTW leg.
For flights where the equipment doesn't change, I think the computer may even want you in the same _seat_ for both legs. For exmaple, if rows 1-3 are full on LAS-MSP and rows 4-6 are full on MSP-LGA, you might not get upgraded even if the other seats are all empty.
This may also have been why the GA said FC was "sold out." While there may have been empty seats for the MSP-LGA portion, the fact that it was full on the LAS-MSP portion made it full for anyone travelling both legs.
Bottom line: avoid "direct" flights!