For example, the Barcode Scanner app takes up:
on the phone. When I move it to the SD Card, it changes to:
How come it changes?
Like Bryan says (I can't comment so had to add another answer...), it doesn't move the whole app. The size given after the move is the bit still on the internal storage - it doesn't give any size for the elements that have beend moved to SD.
So in answer to your question, the app doesn't get smaller, just amount of internal storage used gets smaller.
See Where can I find my Android applications? on app space distribution and locations.
As far as I know, it moves as much of the app as it can from the internal storage to the SD card. So for instance, databases, images, or other resources would be moved over. I do not know the exact details of how it works.