run puppetd without a /etc/puppet/puppet.conf.
puppetmaster then pushes one down (via default node)
puppetd does not see the "change" and doesn't read puppet.conf until restarted.
May 29 14:49:26 mtl6-50488 puppetd[3002]: Reopening log files
May 29 14:49:27 mtl6-50488 puppetd[3002]: Got signed certificate
May 29 14:49:27 mtl6-50488 puppetd[3002]: Starting Puppet client version 0.24.4
May 29 14:49:27 mtl6-50488 puppetd[3002]: Starting catalog run
May 29 14:49:28 mtl6-50488 puppetd[3002]: (//Node[default]/baseclass/darwin/File[svn.rev]/ensure) created
May 29 14:49:28 mtl6-50488 puppetd[3002]: (//Node[default]/baseclass/darwin/File[puppet.conf]/ensure) created
May 29 14:49:29 mtl6-50488 puppetd[3002]: Finished catalog run in 1.42 seconds
May 29 14:50:13 mtl6-50488 puppetd[3002]: Caught USR1; triggering client run
May 29 14:50:13 mtl6-50488 puppetd[3002]: Starting catalog run
May 29 14:50:14 mtl6-50488 puppetd[3002]: Finished catalog run in 0.79 seconds
If the puppet.conf WAS reread it would have seen a new directive (factsync = true) and acted upon it. Also I believe it would log that it saw the updated puppet.conf which it doesn't.