I think there are some bogus checks lurking in upgrade-charm:
~/charms/postgresql/built$ juju deploy . testy
~/charms/postgresql/built$ juju upgrade-charm --path . testy
ERROR cannot upgrade "postgresql" to "."
~/charms/postgresql/built$ juju upgrade-charm testy
ERROR upgrading a local charm requires either --path or --switch
~/charms/postgresql/built$ juju upgrade-charm --path `pwd` testy
ERROR cannot upgrade "postgresql" to "built"
Similarly, without using a relative directory to confirm that this is different to Bug #1573020:
~/charms/postgresql/built$ juju deploy `pwd` testy2
~/charms/postgresql/built$ juju upgrade-charm --path `pwd` testy2
ERROR cannot upgrade "postgresql" to "built"
~/charms/postgresql/built$ grep name metadata.yaml
"name": "postgresql"
Above is from 2.0-beta6