Psychic and Ghost types do not interact properly. Ghost erroneously does 0 damage to Psychics.
Leech Seed and Toxic interact in an unintended way with the damage from Leech Seed growing with Toxic's N parameter, which is the number that causes it to grow in damage each turn.
Gen 1 misses occurred, forcing even moves with 100% accuracy and Swift to miss very rarely.
Focus Energy divided the crit chance by 4 instead of multiplying it.
Counter only works against Normal or Fighting Moves
Rage would have its accuracy dropped drastically for the remainder of the battle if it missed.
Dire Hit reduces the Crit ratio by 75%.
Badge Boosts are reapplied when a Pokémon has its stats modified in battle.
Hyper Beam didn't need to recharge if it knocked out an opponent.
If one type cancelled out another type's super effectiveness on a Dual Type Pokémon, the Super effective message would still display if hit by that type of move.
Frozen status never ended normally.
Great Balls were often better than Ultra Balls
Wrap, Bind and Fire Spin were able to stun lock a Pokémon endlessly.
Healing moves didn't work if the user's HP was exactly 255 or 511 points under its Max.
AI would always pick a supereffective attack type, even if that move did no damage (like Lance spamming Agility against a Fighting Type).
There are more oversights, but they seem to not be what you are looking for (missingno./out of sight trainer spawning/item duping etc...). I would even call the ones I listed above glitches (or glitch-like) by definition, but I believe they are in line with what you meant.
My sources were wide and far, but all of this information can be found on Bulbapedia in their respective pages. Check the glitches page to see if there are any more that you think should qualify.