Because it takes resources to determine that nothing changed. If you want to opt-in into that there is even an extension trigger that makes doing so fairly simple. But it's off by default because the typical case is that people don't frequently perform no-op updates so why eat the expense.
But it takes resources for other operations, right ?
I think this is not unusual. If an user double click on a grid, just sees a record and clicks ok to save, probably that application calls an update instead of seeing if some field were changed before that.