What is the exact purpose of object scale?
Here is how it really is under Blender's hood:


An object is just a holder for a mesh, curve, lamp, camera, etc..
Multiple objects can share the same mesh (same data).
Object adds (among many) transform properties to the data contained within - like location, rotation and scale.


So if you scale a cube into a block, the mesh is still a cube but the object is a block. You can have the same cube mesh linked in many objects, each being a different block.

When you apply the scale (or any other transform) you make the mesh actually reflect the transformation. This change would project into all other objects with this linked mesh.

Some Blender operations only operate on mesh and don't take object transformations into consideration - like UV unwrap for example. That's why scale needs to be applied.

The confusion is imho Blender's fault. In edit mode it should actually display what the mesh really looks like (like it does with modifiers), or these operations should be written properly to account for object transforms - so what you see is what you get - a thing every gui and program should follow..