pros:
- Lower memory use if you have many processes with commonly repeated keys.
- Keep keys in elixir style, while not forcing it into the larger world.
cons:
- This amount of work might be unnecessary for some use-cases (where memory isn't an issue, but extra computation could be undesirable or prohibitive to larger goals)
- O(n) operations add up with more keys/nesting
caveats: using String.to_existing_atom/1 so we don't grow the atom table so large it crashes the VM 🙃