My limited understanding is this:
camCreate only creates things (such as arty shells) on the host. It should be used in cases where the client doesn't need to create the thing. I can't think of any examples, though, since as I said my understanding is limited on this topic.
createVehicle creates things on the host and all clients. It should be used when the created thing must be seen (or tangible?) on all clients. Your arty example is the best example I know of.
However, the problem with using createVehicle is that it can create a lot of lag if you are creating many (hundreds) of something, such as hundreds of shells simultaneously. So, unless you must have it seen on all clients, use camCreate.