Any paint over rust product is designed to bite into rusty material for adhesion. These products are typically made of long chain polymers which provide an exceptional barrier coating, but have poor adhesion properties unless reacted with something, rust in this case. Using them over clean metal requires additional steps to make a product not designed for clean metal to work on clean metal. The long chain polymers are more easily broken by UV rays and that is why POR and other makers advise against using it in areas exposed to the sun. On smooth clean metal, the POR type products have been known to flake off.
Epoxys and other primers are typically made of short chain polymers that have better adhesion properties, but are more porous. Good epoxies also have chromates or zinc particles which passivate exposed metal. For example, small breaches in the primer can withstand rusting for a period of time until the zinc or chromate is depleted from the primer. Epoxies have good barrier properties, but must be top coated to provide a proper barrier coating. However, this system does not work on rusted metal as we all know.
I have seen comprehensive tests conducted by an ISO certified lab that show that an epoxy/top coat system over clean metal is substantially superior to a paint-over-rust system of any type over any type of substrate. POR products are excellent for what they are designed for, but I believe they get over used and for applications they are not intended for. I have used POR inside of cavities, frame rails etc... where it is impossible to get a good surface for epoxy.