Automake-1.11 and some newer versions fail if m4/ doesn't exist. This behaviour was changed to warning in version 1.13.2.
expat is still the default parser, but libxml2 can also be used via an option to the configure script. New parsers can easily be added by implementing a parser_foo.c that uses the interface defined in parser.h.