I have rattle-canned a couple of hunting guns with Krylon or Rustoleum, and had acceptable results. If you degrease the gun prior to painting and allow adequate time for the paint to fully dry (days, not hours), it can turn out pretty well. Gun oils have not effected the paint so far, and one gun is an AR-15 that I keep very well lubed here in SW Arizona. It gets a lot of oil on it, and it has yet to effect the paint.
That said, the paint will definitely scratch, and will eventually need to be touched up or redone. Since I realize that, I'm not too concerned about it.
I tried Brownells Teflon/Moly spray-n-bake finish a few years ago, and it didn't turn out well for me. That's likely because I didn't blast the parts first, so I don't blame the finish.
I've done Dura-Cote, and find it too thick to apply to anything that moves. As an exterior finish, I'd rate it as okay (and just okay). It's essentially a two-part epoxy paint, and takes around a week at room temp to fully cure. It's also quite expensive for what it is.
The KG Gun Coat has a very good reputation, although I've never used it so I have no first hand experience.