The same thing happens without using haddock at all.
.hi and .o files are created only for Data.TypeLevel.Num.Reps, Data.TypeLevel.Num.Sets and Data.TypeLevel.Num.Aliases.TH modules. I have no idea for wich reason other modules are ignored. They are in exposed-modules like those three.
Maybe TH deals with some magic?