depends on the paint chemistry
I have used por15 for many different applications. However I have found that por15 does not prevent rust if the steel part coated with por15 remains wet for long periods of time. (Think of water standing in the bottom of the outer washer tub or water pump impeller standing in unexpelled water) After much research, I found out why. Por15 has a solvent base like most paints and as por15 "dries", the solvent escapes thru micro-pores in the coating. Additional coats will cover "most" of these micro-pores of the previous coats ..... but not all of them. (Think of pore on top of pore) The great thing about por15 is that it grips to rust really well, but not very well to smooth surfaces, including smooth/shiny metal parts.
There is a product that the marine industry swears by and its chemistry is totally different from por15. The product is KDS Rust Seal. It does not have a solvent base and therefore does not dry, or gas off. It "cures" by the introduction of humidity and cures from the outside inward, unlike its solvent based counterpart which dries from the inside out. Since it is a curing process vs an off gassing, no pores are created and leaves a true monolithic coating.
I have used this product on the inside water jackets of acid cleaned engine blocks, both iron and aluminum, (1950's - 70's jaguar restorations) for the past 12 years. A customer Jag engine we coated at least 11 years ago came back for a water pump leak. I changed out the pump and the coating we did in that water jacket looked brand new! I tried to remove some of this coating that was under the gasket surface and scrapping would not remove it. I ended up having to use a flat file to take it off.
Over the years we have tried applying this stuff to different surfaces and found that it will bond itself to most hard surfaces. Some surfaces we have tried is glass, polished stainless steel, powder coated steel, shiny chrome, pot metal and anodized aluminum. HOWEVER, there is a trick. You must use a phosphuric acid cleaner before coating. We use por15 marine clean. Wash the part to be coated with the marine clean and then thoroughly rinse with clean water. Air dry the part and do not handle with bare hands. Immediately coat the part and allow to fully cure before returning the part back to service. If the new coating does not get scratched or worn, it will prevent any O2 from coming in contact with the part coated.
If still not convinced, buy an 8 oz can of it and some por15 marine clean. Get an old stainless steel butter knife, clean it and dip it into the KDS rust seal paint. Let it cure for 72 hours and then take a knife, sand paper or the like to it and see if you can remove this coating. You will be amazed at just how tough this stuff really is!
BTW, the marine clean can be reused. For smaller parts we pour the marine clean into a small bucket and let the parts soak. We then pour the marine clean back into its original container.