Don't ask me how I know this, but if you set pluginsource to something containing a variable -- say, for example, "pluginsource = puppet://$puppet_server/plugins", you get a crazy set of errors:
debug: No path given for plugins mount; creating a special PluginMount
debug: Creating interpreter
/usr/lib/ruby/1.8/puppet/util/settings.rb:125:in `convert'
/usr/lib/ruby/1.8/puppet/util/settings.rb:120:in `gsub'
/usr/lib/ruby/1.8/puppet/util/settings.rb:120:in `convert'
/usr/lib/ruby/1.8/puppet/util/settings.rb:728:in `value'
/usr/lib/ruby/1.8/puppet/util/settings.rb:1103:in `value'
/usr/lib/ruby/1.8/puppet/util/settings.rb:495:in `section_to_transportable'
/usr/lib/ruby/1.8/puppet/util/settings.rb:436:in `persection'
/usr/lib/ruby/1.8/puppet/util/settings.rb:143:in `each'
/usr/lib/ruby/1.8/puppet/util/settings.rb:142:in `each'
/usr/lib/ruby/1.8/puppet/util/settings.rb:434:in `persection'
/usr/lib/ruby/1.8/puppet/util/settings.rb:490:in `section_to_transportable'
/usr/lib/ruby/1.8/puppet/util/settings.rb:633:in `to_transportable'
/usr/lib/ruby/1.8/puppet/util/settings.rb:632:in `each'
/usr/lib/ruby/1.8/puppet/util/settings.rb:632:in `to_transportable'
/usr/lib/ruby/1.8/puppet/util/settings.rb:660:in `use'
/usr/lib/ruby/1.8/sync.rb:230:in `synchronize'
/usr/lib/ruby/1.8/puppet/util/settings.rb:655:in `use'
/usr/lib/ruby/1.8/puppet/network/handler/report.rb:21:in `initialize'
/usr/lib/ruby/1.8/puppet/network/http_server/webrick.rb:140:in `new'
/usr/lib/ruby/1.8/puppet/network/http_server/webrick.rb:140:in `setup_handlers'
/usr/share/rails/activerecord/lib/../../activesupport/lib/active_support/inflector.rb:250:in `collect'
/usr/lib/ruby/1.8/puppet/network/http_server/webrick.rb:135:in `each'
/usr/lib/ruby/1.8/puppet/network/http_server/webrick.rb:135:in `collect'
/usr/lib/ruby/1.8/puppet/network/http_server/webrick.rb:135:in `setup_handlers'
/usr/lib/ruby/1.8/puppet/network/http_server/webrick.rb:80:in `initialize'
/usr/sbin/puppetmasterd:237:in `new'
/usr/sbin/puppetmasterd:237
undefined local variable or method `parent' for #<Puppet::Util::Settings:0x2b11b28ad740>
Getting rid of that line in puppet.conf makes the error go away...