Yes Mayas working as intended, just not the way you imagined. This is one of the reasons why many guides on how to script Maya are in fact wrong. The scripting of Maya should build nodes not manipulate the intrinsic database (that is unless you know what your doing).
Explanation. In order to facilitate manipulation of objects with history Maya has a concept called the tweak (named after a node that allows you to redirect the manipulation in history). In normal operation Maya works on nodes. Nodes construct a history. Now if you make a shape in history like this:
generatingNode -> shapeNode
Then generating node would always override the shape node changes. Unfortunately artist couldn't really do anything in this kind of situation. Enter tweaks; What Maya does is it implements a cache that's done on top of this history. Because its a common occurrence its been included into the shape node. This means Maya has 2 point arrays in your shape node, positions and the tweak potions. The tweak array is called pnts, and the other array is called vrts. You can find this info by reading the documents right. Mayas most important document section is the NODE REFERENCE, something that escapes nearly everyone. From the node reference:
pnts (pt) float3 array output input connectable storable
This attribute is the array of vertex tweaks (relative movements). The
attribute values are always significant regardless of whether the object
has history or not
and (yes this ones a little bit cryptic, but since you can/should not directly manipulate this array it does not matter)
vrts (vt) float3 array output input storable hidden
This is an internal attribute representing local space vertex position,
used for file I/O. It should never be directly manipulated by the user.
If it is modified, the results will be unpredictable.
So in essence the pnts is added on top of other movements. Hence ist not a local space representation but offset space representation. So yes putting the local coordinate in pnts would indeed scale your object.
So what to do? Well do not manipulate the pnts array directly. If you use the commands
xformmoveinstead then Maya will automatically calculate the needed pnts transforms for you. There is really only about 6-10 reasons to manipulate pnts directly. The most common operation being that you want to erase the tweak. The other is to relocate the tweak form elsewhere when a tweak node is present to redirect move and xform, but this is very uncommon already. Rest of the operations are really fringe use cases. In fact you should allays manipulate things with the accessors if humanly possible.
PS: to understand try this, make a plane that animates a wave. Kill the inbuilt tweak node that goes ito history and manipulate points of your shape. They still move with teh animation but at a newly defined location.
PPS: no Maya at hand.