One of the things I feel AWS has succeeded at is putting control of infrastructure in the technology team's hands. In many places dedi or colo requires contract negotiation with the provider and involves some sort of purchasing dept. There are some places I've worked with where getting a dedi/colo could be weeks or months of different teams paperwork. With AWS the tech team can spin up 100 servers with no outside involvement needed after the initial work of getting an aws account with $x-xxx k/mo limit.
It's hard to beat the operational flexibility AWS provides, but I can see a few scenarios where creating your own mini private cloud out of dedi/colo servers could be more cost effective.