Doesn't it lead to inconsistent layout if someone forgets to add it?
I am not a designer, but few things irks me more than paddings varying across the same 'components'.
From experience, your method is easier to think through, but later on it is more time consuming to modify a layout. pa1 and the like should be treated the same as magic numbers.
That is the point. Padding can't be inconsistent if there are only 7 values to choose from, not 1..7, but powers of two, so 0.125, 0.25, 0.5, 1, 2, 4, 8rem.
Joe will chooses 0.25, Mary picks with 0.125 while Huan goes with whatever is the default.
There will be inconsistency if there is more than one choice available (empty is also a choice). Someone will slip up, it is only inevitable.
And if somebody doesn't use the library, but pixels or percentages, you get the same problem. You can't use a library to replace communication in a team.
But having 7 rem-relative steps, that fit together makes the common use-case way easier: Joe: "I need more padding on this, so I use pa2 instead of pa1".
If you feel the urge to check your code base it's easy to write scripts that count the occurences of "pa1..pa7". It's not so easy if you have to take into account "padding: 1px", "padding: 20%", "padding: 3em" etc.
From experience, your method is easier to think through, but later on it is more time consuming to modify a layout. pa1 and the like should be treated the same as magic numbers.