$50k/$10k is possibly a bit extreme - say $80k/$8k perhaps.
Typically when my clients do a project, they're budgeting out for the year, so that's $8k/year, not per month.
AWS would be cheaper with reserved instances, but then (IIRC) you're prepaying in advance for something you may not need. Even if it's cheaper, it's sort of defeating the purpose of "i can scale on demand". (which, yes you can still do, but you're back to 'on demand' pricing).
As someone else pointed out, some of where AWS gets you is the storage and traffic. I've got a setup right now where I need to have at peak 2-3 servers to handle traffic, as there's a moderate amount of computation going on - it's not all the time, nor every day, but when I need it, I need it. And it's processing documents (photos, etc) and we need to store them. Then show them back to the user. With on demand pricing, and the amount of traffic, this can be ~$600+ per month (*12 = ~$7000/year).
Could I optimize the code more to use less CPU, and perhaps require 1 less server? Possibly. Could I optimize some other stuff? Possibly, but that will cost more time, in order to save money with AWS.
Reserved instances would probably be the best, but if we ended up needing more later, it's harder to go back 6 months later and say "hey, we need more $ for X", as the budget was already done and processed for project Y.
I've got some projects like this at digitalocean, and one on month-to-month dedicated hardware, and the pricing is about 50%, mostly because of the built-in storage that AWS line items separately.
Can AWS do more functionally? Sure. Do we need it? Usually not, and paying for that infrastructure when it doesn't match the core needs isn't usually an option. Elastic IPs would be nice, but we could get much of that utility at linode if need be, and still pay less.