I know why we have to apply scale but what purpose does it serve ? Why not keep object scale to always 1 ? Thank you.
You can imagine scaling an object in Blender like stretching / shrinking the original shape, or like adding some scale modifier to an object - you are modifying the final proportions, but the object keeps it's original shape internally.
The advantage is obvious - it let's you easily revert back to it's main shape by setting scale = 1.
After you hit Apply, the scaling will transform into it's main shape (mesh), so the object is no longer scaled. Exactly the same way like applying any modifier.
Applying scale / location / rotation is one of the Blender's features that can be little confusing in the very beginning, but will start to make sense for you once you get used to Blender's workflow.