When the -w flag is selected the output is always RAW PCM. I know we can't write a full WAV header until the eof is reached but there are many encoders than accept incomplete headers with parameters like -readtoeof 1 (Aften), --ignorelength (oggenc2), ...
This is my request:
-f X Set output format. Valid values for X are:
1: Microsoft WAV format (default for file output).
Force incomplete wav header when -w is selected.
2: RAW PCM data (default for stdio output).
Now is backwards compatible and the incomplete wav header require a explicit parameter.
Now transcoding can be:
faad -w -f 1 input.aac | aften -ignorelength - output.ac3