Just my personal observation:
When DuPont Duco lacquer was the standard paint used on locomotives (before no-lead paint), Union Pacific locomotives, unless freshly painted, acquired a very faint, slightly sooty, stain. Probably the same thing was happening to other railroads' locomotives in darker or cooler colors, but it was noticeable on Union Pacific engines due to the entire carbody below the roof being painted yellow. The DuPont lacquer was durable, but it apparently was susceptible to staining by acid rain and locomotive exhaust*. This was not just the yard and freight locomotives -- the large fleet of E8 and E9 locomotives for the passenger trains had the same look. The passenger cars did not, but they were washed at least twice a week, with detergents and mechanical brushes. The locomotives were washed frequently but probably not as often as the passenger cars, by a spray washer using a harsher solution containing an acid added to the spray water. It was a wash for a different purpose, intended to wash off exhaust from the roof and oil or fuel from the lower parts of the locomotive, as well as grease from the trucks. Thus the cars were a brighter yellow than the E8's.
When they started using Imron paint, I no longer noticed the sooty stain. The yellow, when clean, looked clean.
It's my belief that acid rain, acidic exhaust, and acid solution used for washing, were all affecting the brightness of UP's Armour Yellow in the days when the locomotives were painted with Dupont Duco lacquer.
* Just my own conclusion from observing UPRR locomotives from 1950 onward.. I am not a chemist.