It's called Married Segment logic. This is an unfortunate by-product of the new united.com. When booking a reservation, UA (and almost all airlines) are only willing to sell a certain number of seats in any given bucket for the combination of flights you are searching for.
For example, SEA-IAH-MSY (as the poster above me mentioned) may only have 1 F seat left because although SEA-IAH is F9, IAH-MSY is F1 so UA can only sell one F seat on those combined flights. This is true for any fare bucket in the system including R/RN.
Now, having said that, UA did add back in the "fare class" links on existing reservations which will correctly and properly show the individual fare classes for each segment of your itinerary rather than using married segment logic. Since married segment logic does not apply after you have purchased your ticket for things like upgrades (unless you are on the same flight number) the SEA-IAH flight may show R9 but the IAH-MSY flight will likely show R0 because there's only 1 F seat left.
For through ("direct") flights that have a stopover somewhere (e.g. LIH-SFO-SEA) then the fare buckets you see are correct. "R" will be a representation of "R" for both flights which must be greater than zero at the time the EUA system runs to get the upgrade. One way to avoid this is to book the ticket as a multi-city itinerary so that LIH-SFO appears as a separate flight in the reservation from SFO-SEA. At that point the EUA system will process you separately for the flights and if R>0 on at least one of them and you're next in queue you'll get the upgrade.
Hope this helps. This is by design.
-RM