There's an edge case of 'module' when only one form is provided which results in that form being partially expanded to determine if such expansion would lead to a #%plain-module-begin form. Otherwise (more than one form provided) they are wrapped in #%module-begin with no partial expansion occurring.
I think this might be causing the discrepancy you witnessed.
If a single form is provided, then it is partially expanded in a module-begin context. If the expansion leads to #%plain-module-begin, then the body of the #%plain-module-begin is the body of the module. If partial expansion leads to any other primitive form, then the form is wrapped with #%module-begin using the lexical context of the module body; this identifier must be bound by the initial module-path import, and its expansion must produce a #%plain-module-begin to supply the module body. Finally, if multiple forms are provided, they are wrapped with #%module-begin, as in the case where a single form does not expand to #%plain-module-begin.
(This response was adapted from one of my earlier replies to the mailing list. Search racket-users for "perplexed by macro-expansion behavior near #%module-begin" for more context).
Best,
Michael