Imron is king,but out of the budget and ability of most do-it yourselfers to apply properly..
I have used mostly brush on Rustoleum or farm paint ,ACE Hardware "X-O Rust" enamel,when I'm not willing to spend the money for POR-15 or one of the other "rust converter" coatings..
Most of the vehicles I had apart far enough to paint the frames on,already were rusty and a lot of work to de-rust everything,and I felt it was not worth buying POR-15 for,the plain enamels held up pretty well,oil based is best to ward off rust,but dries slowly..
I agree its not so much what you coat or paint a frame with,its keeping it free of salt and dirt that holds moisture that keeps the frame from rotting..surface rust in itself is a sort of protective coating,its when water & salt gets into the pores of the steel and flakes it apart and becomes thin and weak..
Many old cars & trucks here that got washed underneath during winter months and had their drain oil sprayed back onto the chassis and floor undersides remained in remarkably good condition..
Undercoated ones often looked good,but had much rot underneath due to trapped moisture and salt..
When I mixed and sold auto paints,R-M used to have a black "chassis coating" factory packaged product that to me,was identical to driveway sealer,or roof coating, or even bead sealer used on tires..many body shops liked and used it...it was asphalt based and it clung well and didn't form pockets or flake off easily once it dried..