Huh, yeah that does feel like cheating. Even having some sort of sheared dictionary feels better than a hard-coded one. I wonder how well it performs on things that aren't text based?
Since when has being designed and optimized for a specific use case ever been "cheating" in software development?
Static dictionaries are used frequently in data communications to "break the bounds" of Shannon's theorem.
See static Huffman coding in fax machines.
Well unlike fax machines though are protocol shifts over time. New tags and conventions are invented. A known shared dictionary seems a better method than a hard coded static dictionary.