Difference between FINISHED and CANCELLED as return values
AFAIK it's so that you can check in a script whether an operator executed properly or not, by inspecting its return value. For Blender itself it doesn't matter, but it starts to become relevant when you use one operator from another.

For example:

result = bpy.ops.object.delete()

if result == {'FINISHED'}:  # Can also do: `if 'FINISHED' in result:`
    print ("Successfully deleted object")
else:
    print ("Could not delete object")