Looking at the docs, it looks like it's an instance of ID3Tags, which appears to be based on couple of helper classes mutagen._util.DictProxy and mutagen._tags.Tags, where DictProxy (and its base DictMixin) provides the dict-like interface. Underneath that, it looks like it's storing the actual values in a simple dict (DictProxy.__dict) and proxying to that.
I'm not seeing anything obvious that would muck with the incoming lookup key anywhere in ID3Tags or DictProxy.__getitem__ or any of the other base classes.
I have to jump off to pack for a trip, but might try this out later in a live shell session to see if there's something odd going on with the API.
In the meantime, OP, are you positive you were looking at the same file each time? Was this in a script or in a live Python shell session?
I haven't had a chance to look yet, but I'm using a pretty similar stack at, although with React instead of Nuxt/Vue. I definitely love using Docker, at least as a dev platform, because of the way it evens the field across OS's and makes it easy to onboard new contributors. Will definitely take a closer look when I get more time.
Buuut ... I do mod the !django@programming.dev community, which you might be interested in checking out. There's also the !docker@programming.dev, which is also worth checking out.