> It being a one-pass compiler bugs me (there is no excuse for a modern language to require forward declarations).
He refers to the need for forward declarations as "one-pass compiler". Historically at least, Ada compilers were infamous for requiring many passes and being consequently slow.
Whether it is still acceptable for a programming language to require forward declaration seems to me rather a matter of personal taste. Sure, compilers improved and there's plenty of memory for them to use, but human programmers' capacity increased little, if any, I'd think. I think of those forward declarations as form of double-entry bookkeeping.