Difference between createmultisig and addmultisigaddress? What is the functional difference between createmultisig and addmultisigaddress in bitcoincore (v 0.10)? 

To be clear, I understand how both function. ie. multisigCmd n ["address1 public key as hex", "address in Base58 format", "more JSON entries..."]  (where n is the n of m value, and a JSON list of eiher hex pubkeys or Base58 addresses follows). 

However, the output for the multisigCmd (createmultisig and addmultisigaddress, respectively) is:


createmultisig: ==&gt; 3outputEqualsPay2scriptBTCAddress, script as hex
addmultisigaddress: ==&gt; 3outputEqualsPay2scriptBTCAddress (no script!)


Both commands give identical output addresses (ie 3outputEqualsPay2scriptBTCAddress) when the same JSON data input is used. So the difference, really, is only that the former outputs the redeeming hex script. Am I missing something? Why the need for 2 commands rather than, for example, a single command with a -hex_script_output flag?
createmultisig creates a P2SH multisig address for use in raw transactions.  It outputs the redeem script because you'll need that to spend any payments sent to the P2SH address.
addmultisigaddress adds a P2SH multisig address to your Bitcoin Core wallet, allowing you to track and spend payments received by that address.  It doesn't output the redeem script because Bitcoin Core stores that for you.  (You can retrieve it later with validateaddress.)