I think good taste dictates that a module initialize itself with the
minimal structures necessary to guarantee that all exported procedures will
run appropriately, and then have a TweakMe procedure so that users can
change colors, positions, etc.
One problem the author of Benchmark has (had?) is that if the application
programmer uses any portion of a module, the compiler imports _all_ of that
module's code. (I found that out _right_ after I'd paid for it, isn't that
amazing!) Consequently the modules must be kept teeny, which means
breaking procedures and declarations into separate modules. Of course, I
only have the beta version available, so who knows what hath been wrought
since September 1987?
It's true that the linker does not "optimize" (i.e. remove unused procedures).
Neither did TDI's first release. This is, indeed, a nuisance, but I think most
people won't mind a few extra K's in their executables.
– Steve –