I have a set of eyeballs made up of 2 meshes joined together, a pupil and an iris. When I apply rotation and scale, it moves them in different directions. How can I apply rotation, scale etc. without changing an object's transformations? .blend file is below
Take a look into the Properties panel > Object > Transform > Delta Transform, you've accidentally given Delta Transform values to your objects. Delta transform is used to move, rotate or scale the objects without affecting their original location, rotation and scale, it can be useful sometimes.
If you apply the LocRotScale of your object, it looks like it applies its Delta Transform values as well, but it doesn't reset them, so the object undergoes these Delta Transform values again, therefore it may automatically move, rotate or scale, that's what happens here.
I don't know if there's any easy way to fix the issue, as I'm not sure there's any way to apply the Delta Transform values alone (?), so you probably need to bring these values back to their default value (0/0/0 - 0/0/0 - 1/1/1), then move, rotate and scale your object to correct its new location, rotation and scale, and at last, apply.