Will Robertson wrote:
 > Another random thought: since users "shouldn't" be defining new macros
> within the body of their documents, I think LaTeX3 should have something
> like the equivalent of
>   \AtBeginDocument{\catcode`\#=12}

This of course would be a major break with LaTeX2e at the document
level.  However, as everyone seems agreed that there is no real chance
of compiling arbitrary LaTeX2e documents with a full LaTeX3 kernel, I'd
say it is a design choice worth making.

> Of course, there could be markup to allow them to write more definitions
> mid-document if they really want/need.

Could be added to \CodeStart (or whatever it ends up being called).
-- 
Joseph Wright