It resets Sizes to 1 and re-align the local space of the object on the global space. Texture mapping depends on the scale value and the rotation value of the moment for a mapping like Orco. I some of your objects were scaled up or down and/or if they were rotated relative to the global space then their textures will move after Ctrl+A.
Interesting idea, but I have no idea how to implement this.
Thinking of it a bit further, no Python’s necessary.
If you have multiple objects and you want to be able to resize their material all in one shot by the same amount then you could select them all, go in the material buttons with your mouse pointer, hit Ikey, choose Size and in the IPO window, Material IPO type, you’ll find a set of 3 IPOs for SizeX…Y…Z to which all your objects are linked.
Since you have only one key on that IPO, moving it up and down in Object mode (for the IPO) will scale up and down the material for all your objects at the same time. Of course you could make the IPO single user to tweak one particular object or add some more keys and animate the materials…
My scene has a dozen or so objects, each with their own materials and separate UV maps. Once the materials are created and scaled for each I hope to bake the materials to textures, then assign the textures to the objects.
The baking process implies that you already have UVcoordinates to your objects and that they all have an Image affected to them: assigning the textures to the objects is done automatically and all you need to do is to pack your data (or save all those images if you don’t want to pack)