To really see the difference between the two, you should set up a mission with a scripting console (Vectorboson's is a good one). Commands typed into the console will only be executed on that specific client.
Using the camcreate command will make an object that is only visible on the machine the command was run from. Using the createvehicle command in the same situation will make the object visible on ALL clients.
A shell camcreated on the server-side only killed both players.
I haven't experienced or confirmed this myself. However, that would be a special exception for the server only. Camcreating shells on clients creates a shell that does no damage.
Placing a "T80" createvehicle ... in the initfield of a unit created 2 t80s, each visible from both players. Substituting createvehicle for camcreate once again produced 2 T80s, each visible from both players.
Init fields are run on EVERY client. So the camcreate and createvehicle commands were run twice: once on each client, resulting in 2 vehicles total.
Okay, now I get it. The 'camcreate' command should have only made one vehicle visible on each client, since I just said the created object would only be visible where the command was issued. :-\
I guess I don't have enough MP experience to give straight answers here... However, I know that the camcreate/createvehicle commands are very basic to MP, so the answer to your questions has to be widely known to experienced MP editors.