I've wondered about doing this before for copy protection; mixing the order of bullet points, and so on. You can't stop copies, but you can see who made the copies potentially.
Something similar -- using functionally-equivalent machine language instructions instead of synonyms -- was (is?) used by the shareware A86 assembler[1] to detect unregistered use.
From the A86 manual:
A86 takes advantage of situations in which more than one set
of opcodes can be generated for the same instruction. [...]
A86 adopts an unusual mix of choices in such situations.
This creates a code-generation "footprint" that ... will
enable me to tell ... if a non-trivial object file has
been produced by A86.
[1] http://eji.com/a86/