Unit testing is designed to help catch logic flaws. By writing unit tests, you will uncover bugs that won't be apparent during compilation time but might cause your code to work incorrectly when a user attempts to run it. Forcing 75% coverage requires the developer to think about their code a second time, double-checking their work. If you can't write the unit test, then that means you don't understand the logic, or the code is flawed. Either situation is undesirable.
Of course, unit testing without "assert" functions (actually checking the output to match expected values) makes unit testing less valuable, but they likely decided that this would be arbitrary and not as useful as code coverage; if they had simply insisted that you write, for example, five asserts per test method, you'd be forced to come up with arbitrarily useless asserts for your code (most test methods don't necessarily check five outputs).
While it is true that you can write useless unit tests, covering all the possible branches of code (at least 75% of them) makes it more likely that you'll find a regression bug if you later change that code. The 75% marker was specifically selected to imply a certain bit of a limitation of the platform: 100% coverage should be impossible to test, because the unit testing language does not allow to test exceptions, etc, that can be arbitrarily difficult to test normally.
In all but the most simple code, 90% coverage should be the value you look to achieve, being that 100% is usually nearly impossible, and 75% is the minimum, so you want some "breathing room" for deployment; you have to write the unit tests after the code you're testing, unlike some systems, where you write the unit tests first then make code that meets the test.
Salesforce is a platform that requires performance, since any code that is bloated or slows down the system for one user affects the user experience for all users as a whole (there is only so much server capacity to process requests). Salesforce handles over 1,000,000,000 transactions per day, no simple feat, and it requires a lot of hardware. Unit tests help make sure that your code is functioning within normal parameters to help give a better experience for everyone.