What is your purpose for "distributing" manifests? If you are planning an agent/master setup, then the only place the manifests need to reside is on the master. In particular, they do not need to be present on the target nodes under management (except inasmuch as the master may reside on a managed node). Delivering manifests to target nodes is necessary only if you want to operate in masterless mode, using "puppet apply" on the target nodes instead of running the agent.
If you want to perform distributed manifest development -- i.e. you have a team who will cooperate on writing and maintaining your manifest set -- then a version-control system such as git or svn is nearly a necessity. In that case, it makes sense to use your VCS at need to update the master with the right version of its working copy of the manifests.
Even if you are the sole manifest developer, it might make sense to do manifest development somewhere other than on your primary master, and there certainly are still advantages to a VCS, so even then it might be a good fit to deliver the desired version of your manifest set to your master via your VCS. And if you are doing your manifest development directly on your master then I would strongly advise you to use a VCS, though there is no "distributing" involved in that case.
Also, if you are planning a masterless setup then it makes a lot of sense for nodes to pull their manifest set from your VCS.
John