There are multiple parts to "sending" an email. Client (e.g. Thunderbird, Web browser) to mail server. Then from the mail server to the destination mail server. The final step (destination mail server to recipient's client) is normally considered retrieving email rather than part of the sending process.
The first step (your client to the mail server) is where SMTP is normally used. In the case of a web client, you can consider the action as Browser -> Proxy Client -> Mail Server, where the "Proxy Client" is the web server.
The second step (your server, to destination server) typically uses SMTP in the case of internet email.
The final step (mail retrieval) is where POP3 and IMAP are possible protocols.
But, that's just the "standard" set of possibilities.
Microsoft's Mail Server software (Exchange) has an extended protocol (MAPI) which it uses to communicate with Exchange-aware clients (mostly Outlook). It can use SMTP and MAPI clients, but I think you have to turn on the "standard interfaces". Lotus Notes is another popular mail server (well, not just a mail server) which supports a different client-server protocol, and for which the standard interface is not part of the standard install.
There are email client programs that interact with popular mail servers (principally Exchange, hotmail and gmail) using the HTTP interface to overcome difficulties or perceived limitations using the standard or enhanced APIs those Mail Servers provide, if any (at one time at least hotmail only had a web/HTTP interface).
The source and destination Mail Servers may use some different protocol to transmit the email between them. Most modern mail servers will support SMTP, but if there are other possibilities, especially if the source and destination server is the same. *nix systems provide "sendmail" for sending email on the same host, which can also use SMTP to transmit email to other hosts.
SMTP is a standard way to send email to a destination server. POP3 and IMAP are standard ways to retrieve email. Good for interaction with other standard supporting clients and servers, but by no means the only way it is done.
In particular, what gmail does when you send an email to yourself, or even to someone else with a gmail/Google hosted email account, is totally up to Google. They could use SMTP, they could use sendmail, Lotus Notes (okay they don't, but they could), or they could do something totally custom.