It is not your imagination, nor it is in-game mechanics.
All kinds of potions heal the set amount of hp they are supposed to.
Now let's talk about moves :P
All attacking moves do not do a set amount of damage(besides dragon rage and sonicboom). They do a range of damage every time they use it, prior to stat boosts. So let's just say Gengar uses shadow ball on a Ferrothorn. It does about 50 damage. The next time you use shadow ball, it does 48 instead. Then the next time you use shadow ball, it does 51 damage.
Sorry if this confuses you :P
Hopefully this answers your question
Hope I helped!