The way I do this is to click the Forward option and then type in a new Subject and clear the message text so I have an new message but with the attachments in place.
I'd be surprised if there's a quicker way than this; entering a new Subject doesn't take that long.
The data is uploaded via normal browser means (binary) onto the Google servers. Then, on the server, it is converted into a normal attachment and the email will be sent.
Same for download: GMail presents you the icon for the attachment, you click it, Google extracts the original data and downloads it via regular browser means (binary).
In case of multiple attachments, GMail even offers you to download all at once and pack it into a .zip, which might reduce the overall size of the transfered data.
Desktop clients do the MIME-encoding on your desktop, thus increasing the attachment and then sending the mail. This should not save you any data/money, because that mail is actually bigger than the original data.
So, at a first glance GMail might be better in terms of transfered data, but don't forget that it has to transfer the whole UI over the wire.
Want to read a different mail? ⇒ Data transfer.
Want to re-read an older mail? ⇒ Data transfer.
With a desktop client the data is on your machine, no data transfer will be involved as long as you do not press "send".
Best Answer
Most likely uploaded to the server, since that is the slowest operation. Any special encoding done to the file probably takes fractions of a second on Google's beefy mail servers. Either way it is probably not wise to try to interrupt it if you want your file attached.