Due to the design of tramp, the encoding and decoding programs need to read from stdin and write to stdout. On some systems, uudecode -o - will read stdin and write the decoded file to stdout, on other systems uudecode -p does the same thing. But some systems have uudecode implementations which cannot do this at all—it is not possible to call these uudecode implementations with suitable parameters so that they write to stdout.
Of course, this could be circumvented: the
begin foo 644 line
could be rewritten to put in some temporary file name, then
uudecode could be called, then the temp file could be
printed and deleted.
But I have decided that this is too fragile to reliably work, so on some systems you'll have to do without the uuencode methods.
The Emacs maintainers wish to use a unified file name syntax for Ange-FTP and tramp so that users don't have to learn a new syntax. It is sufficient to learn some extensions to the old syntax.
For the XEmacs maintainers, the problems caused from using a unified file name syntax are greater than the gains. The XEmacs package system uses EFS for downloading new packages. So, obviously, EFS has to be installed from the start. If the file names were unified, tramp would have to be installed from the start, too.