There is no formal specification of OCaml, but there is an intended behavior, and some people have even provided formal specification for parts of it.
But recursive modules explicitly lack a specification. So they really differ from the rest of the language. (To be precise, some subtle interactions between polymorphic variants and modules/first class polymorphism are unspecified too)