Hi Matt,
You're spot on - that's exactly what it does (record to WAV, which is how Flash natively captures the audio, then transcode to MP3 and upload via HTTP POST)... at least, that's what the widget does in the assignment type; it's a little different for the repository plugin, though the HTTP POST code is still there as I'm hoping to extend the recorder and make it a more generic widget that could be used just about anywhere, since all it requires is Flash Player (10.1 or above) and anything on the server side that can accept POST requests.
The MP3 encoder I'm using seems to be pretty quick (it's intended to be a very light-weight encoder), and it also provides progress events (which allow the "preparing for upload" progress bar to give some idea of actual progress, rather than just locking up the interface until it's done).
I'm certainly aware of AMFPHP, but I've had trouble making it work in the past (probably my fault), so I decided to go for the more straightforward (from a PHP perspective, at least) HTTP POST approach. The repository plugin then diverges from the HTTP POST approach by accepting a Javascript callback which it'll pass the filename and content to - this is done primarily so that everything can happen neatly within the repository plugin rather than needing an iframed page that handles the POST and dismisses the file picker.
I'm one of those people who tries to steer clear of Java applets - for a few reasons, but mostly because they tend to be slow to initialise and browsers tend to give you lovely security warnings before they'll let you run them - so I tended towards Flash (which, incidentally, stats tend to indicate has a higher adoption rate than Java browser plugins).
Ultimately, if I could find the time to do so, I'd like to make the recording widget into more of a framework with an HTML interface which can use Flash to do the dirty work - or, once the capability is available, can be switched to use HTML5 (retaining the Flash as a fallback). Last I heard, browsers were yet to implement audio capture, which makes it less of a priority for me - but I'm trying to keep an eye out for browsers landing the functionality that'd make it possible.
-Paul