You invite disaster if you do not list them in the same order as the function expects them. Sometimes you might want to provide some extra methods or subroutines to assist in making the interface between Perl and your extension simpler or easier to understand. These routines should live in the .pm file. Whether they are automatically loaded when the extension itself is loaded or only loaded when called depends on where in the .pm file the subroutine definition is placed. There is absolutely no excuse for not documenting your extension.
Documentation belongs in the .pm file.
This file will be fed to pod2man, and the documentation embedded within it converted to man page format, then placed in the blib directory. It will be copied to Perl's man page directory when the extension is installed. You may intersperse documentation and Perl code within the .pm file. In fact, if you want to use method autoloading, you must do this, as the comment inside the .pm file explains. See the perlpod manpage for more information about the pod format.