My employer makes a version of this class of product.
It resembles a very acidic topcoat that changes the reaction of disimilar metals (oxidation) into a cationic and anionic reaction. It will indeed stop the rusting, and even convert that rust into the coating itself.
I am not familiar with some of the products you listed above, but I'd be willing to bet all of them produce a black colored film when dry. That color is a result the carbonic byproduct of the reaction. (Black probably isn't the best color to be painting a roof, but I could be mistaken in your application...)
I will tell you this- I've never heard of a customer that has ever purchased this class of product from my company ever being extremely thrilled with the result it offered over a similar corrosion inhibiting primer and white (for solar shielding) alykd based topcoat system.
It doesn't sound like you have a large amount of rust to deal with just yet; why not just prime and paint it? If has rusted, I'd just as well be prepared to remove it, rather than trying this exotic solution for such a large area as a roof.
Also- you said the roof was previously uncoated. Does this extend to the galvaniziation of the steel? If the steel was previously galvanized, it could impact you primer selection greatly.
Lastly- Unless you are deadset on an oilbased system, I'd prime and then topcoat with a latex based elastomeric product, which is a cheaper, easier to clean, better for the environment, and overall superior roof coating.
Let me know which direction you go with this project! Hope this helps!
Rhodie