Yes, it oxidizes with time*temp, and as a surface effect it's highly dependent on surface finish and prep of course. You need a very stable heating cycle to get a consistent color across an object.
It's an optical interference effect, the technical term is iridescent (not psychedelic).
Also, because it's an optical effect, any coatings on top of the oxide will affect its color. So, finger prints change the effective thickness, and show up prominently as colored marks. You'd have to lacquer the surface, which also improves corrosion resistance (as mentioned, it's no real protection to the metal).
Specifically, the oxide is either FeO or Fe3O4. The former is unstable, but may be formed transiently, or on the interface layer (between Fe and Fe3O4), or at low temperatures, I'm not sure. The latter is quite stable, well known for being the mineral magnetite.
Magnetite is well known for being a black mineral; it's quite lossy in the optical range, but not so much that a modest (sub-micron) layer doesn't reflect some off the base metal, and so you get interference colors. The reflected wave is pretty much gone after two wavelengths, so as you continue heating, it goes from blue to a straw-ish gray, to the deeper and deeper blue-gray typical of iron scale. (Thicker and thicker layers also tend to flake off from internal stress, making them that much less useful as coatings.)
Magnetite can indeed rust, and it's usually somewhat conductive, so, prone to the same electrochemical corrosion process that causes metallic iron to rust so quickly. If nothing else, it is soft and pits easily, exposing the base metal.
Phosphating (bluing or Parkerizing) is a more reliable and protective method, but doesn't have iridescent colors as you vary the process (e.g., time*temp or chemical concentration), as far as I know.
Next best would be titanium, I guess? -- The anodize (and also from plain heating) has a voltage-controlled thickness, and the oxide is more transparent so the colors are brighter. More expensive and harder to work, of course.
Tim