Puppetlabs did a great job having the files actually delivered by the payload, this is a very smart and native way to go about removing it. Greatly appreciated.
– SacriliciousApr 8 '15 at 13:39

With version 4.6.1 of the puppet agent you have to change com.puppetlabs.puppet to com.puppetlabs.puppet-agent. for f in $(pkgutil --only-files --files com.puppetlabs.puppet-agent); do sudo rm /$f; done for d in $(pkgutil --only-dirs --files com.puppetlabs.puppet-agent | tail -r); do sudo rmdir /$d; done sudo pkgutil --forget com.puppetlabs.puppet-agent After running this I still had files under /opt/puppetlabs so it doesn't seem to fully work currently.
– Chris MagnusonAug 25 '16 at 20:20

The above solution worked for me when I had to uninstall Puppet 3 on El Capitan as well. (Haven't tried with Puppet 4.)
– user1475135Sep 14 '16 at 18:10