R.B. Darlington (1990) points out that one of the distinguishing
features of GLM procedures is that they allow the user to specify
things in terms of ANOVA effect parameters. That is, you don't have to
create indicator variables as this is done for you. Why was the design
choice made in Stata to force the user to create and supply indicator
variables? I know there is xi, but this seems more like a hack, in that
it stops at two-way interactions. Or I don't know how to properly use
it to my advantage.
Regarding complex mixed model ANOVAs, I'm hesitating to say that SAS
Proc Mixed seems to takes care of complex designs much, much more
quickly, and can deal with more data with the same RAM limits. I'll
post some comparisons on this once I make sure I'm running off the same
machine.