|Syntactic Confectionery Delight|
Currently both ExtUtils::MakeMaker and Module::Build complicate the install step (which is just a copy operation) by using some XS modules (Cwd), which means that you can't upgrade those modules on platforms like win32 (can't delete .dll while it's use). I'd like to not see this mistake repeated :)
Another thing I'd like to see is good detection of compilers, headers, external libraries, ... The developer would only specify what his module needs to function (libexpat, version 2) and the user would automatically be prompted if some things are missing (or might be named differently).
A user shouldn't be able to get past the Makefile.PL step if he's missing a C compiler, expat.h, or version 2 of libexpat ...
With regards to tests, a developer need only write something like
And a user would be prompted if he'd like to run those tests, with a defaults (need_socket, need_server_socket) being provided through a config file.
Also see Module::Install for ideas.
update: Whether to build manpages/htmldocs should also be user configurable