I was watching an episode of History Channel, and they were diving on British BattleShips that had been under water in the Dardanelle’s since 1915 (or so). One diver brought up some cannon cordite, which was as thick as a clothes line, and used a cigarette lighter to get the stuff to burn. Seems to me that gunpowder will last a long time, even under water. From what I understand about gunpowder is that the longevity of the stuff depends on how well it was made to start with and how it was stored afterward. I had military pull down powder that degraded and turned red. Someone said it was improperly washed. Well whether it got a good shower at birth, I don’t know, but it was improperly made. I will assume that properly made gunpowder will last a very long time. But it is a plastic. Which means that it will degrade on exposure to light and heat and the corrosive stuff in the air. Car paint is a plastic, we have all seen that stuff fade, turn chalky, or just chip off. Thermal cycling probably will degrade it, but I really don’t know if seasonal temperature cycles is hard on gunpowder.
If you get water in contact with the brass you are definitely going to get corrosion on brass. Air also has sulfides, nitrates, and other pollutants in it. Nitrates cause “season” cracking. Canned air may run out of pollutants, but I really don’t know.
I really don’t know what degrades primers. I have shot estate sale pistol primers that dated from the 60’s. They all went bang and chronographed velocities were consistent with new ones. About 1985 I purchased 700 primed cartridge cases of RA54 30-06 brass. Every primer went bang. It had been stored well as the brass cardboard boxes were not even faded. The brass is on its fourth reload. Good stuff.
You know the military demills ammunition. They store the stuff in ammo cans, in bunkers, and they get rid of it after a time. There has been a whole bunch of Vietnam era brass on the market from demilled ammunition, maybe the stuff starts falling apart after 40 years. The WCC69 brass I bought was all good.