I'm sure `+dictionaryWithDictionary:` is plenty fast, but it still has to allocate an object, and I don't. Pointless optimisation, but I like the simplicity of the single assign too. (`+dictionaryWithDictionary:` can only be faster by making it back on access times to the dictionary.

It's a different reason to why we declare properties to be `copy` (and I'm a big fan of doing so).

And indeed, the whole mess of returning an inner mutable object is similar, but doesn't apply here because I will be applying no further mutation.