Why can't I record backend contributions without using a priceset?
The cause of this symptom was a mis-configured, hidden price set. There is a hidden price set and field (both of id = 1, at least on this site) that are used for non-price-set contributions. On this site, the price set had no financial type configured and the price field was disabled, a fact that was alerted on the System Status page. Setting a valid financial type and enabling the price field was actually kind of tricky (a combination of hacking urls and sql), but it fixed the problem.

I don't know how we ended up with that mis-configuration, an error in the executing code would have been nice.