They've paid £35M for a striker in the form of his career who is proven at EPL level.
You paid £12M, regardless of whether it was up front or not, for a 16 year old winger who had played about 5 games at Championship level and didn't play in your first team for about a year and a half to ensure that nobody else got him (sorta like we did with Bebe).
Just because it's not £35M doesn't mean it wasn't a stupid amount of money to spend on the player. It was still massively over-priced, just like the Carroll deal is. However, Carroll will do his job for the team immediately as he is proven at EPL level and knows how to score goals. Walcott has only this season started playing like a Premier League player, and that's after going to a World Cup as a 16 year old that hadn't played for Arsenal yet, then playing another 4 years and not making it into the World Cup squad as a 20 year old and is finally getting over his injuries..
For what they both bring to the sides, it's very good deals but both were over priced. However, you have to remember Liverpool's deal was done on Deadline day. If they wanted Carroll they had to pay whatever necessary to ensure that they would get him. The Torres deal was highly publicised, so Newcastle knew they would be getting £50M so knew that they could push for £30M+ and if they pulled out, then Newcastle would still keep their top striker. It makes sense to pay the amount they did because of the timing of the deal, but it was still overpriced.