JSX special-cases CamelCase tags to generate object references instead
of strings:
<foo-bar /> → createElement("foo-bar")
<fooBar /> → createElement("fooBar")
<FooBar /> → createElement(FooBar)
while this is aesthetically and architecturally questionable, it does
obviate the need for a macro registry (which constituted a shared global
namespace) as we can directly use object references instead of having to
resolve certain tag names to the registered object - which has
wide-ranging implications:
* we no longer need to worry about namespace conflicts or conventions
* macros must be imported explicitly and thus can be traced to their
respective origin (previously this was difficult, confusing and
brittle)
* we can now use regular JavaScript tooling (e.g. for linting, as
evidenced by the detection of the obsolete "dummy-container" macro)