I think the reason you might be getting confused is that there are really two types of multisig, raw multisig and P2SH (pay-to-script-hash) multisig. P2SH multisig is basically just hashing the actual scriptPubKey desired and putting the scriptPubKey in the scriptSig. This stack exchange questions explains them in more detail: What are the limits of m and n in m-of-n multisig addresses?.
I'm also trying to understand if a 3 of 3 transaction is supported as well.
Yes, you can do m-of-3 multisig transactions with both raw multisig and P2SH multisig.
the meaning of the parameters "2" in addmultisigaddress
The number provided is the m in the m-of-n. So if you want a 1-of-2, you do:
addmultisigaddress 1 '["1xy..", "1Jm..."]'
The BIP11 (accepted) proposal you mentioned just made raw multisig a standard type of transaction that is recognized and forwarded on by standard clients. BIP16 (https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki) proposes the P2SH addresses, which allow for much shorter
scriptPubKeys and support more types of multisig (e.g. 5-of-9, which you can't easily do with raw multisig because m-of-n multisigs with n > 3 are considered non-standard, as shown in the link in the first paragraph).