To answer each question in turn:
Adding a node to the chain requires installing the software for that node somewhere, so it's not something that can be handled via the API.
You should use getnewaddress to create a new user account, but you can also use a stream (even the root stream) to provide extra information about each person. This is how the MultiChain Web Demo works.
All the transactions are stored on every node in the network. It's just that certain nodes only track the balances of certain addresses automatically. Any node can however do this for any address if it wishes using the importaddress command.
You can also communicate between the nodes using streams (publish/subscribe), although in this case note that all of the communication will become part of the blockchain.