Yes, it's an unfixed bug from the client. Scripters cannot fix it, only the dev can.
I believe it works like this: when you talk to the NPC, the client looks for all the egg moves from the selected pokemon. It fetches each move one at a time and if there is a move it believes was selected already, it skips it. Since 'Spore' is a substring of 'Stun Spore', the client believes it already has that move and skips it. If now the Pokemon already knows Stun Spore, the client will not put Stun Spore in its egg moves list, so Spore gets to appear.