Being able to solve programming puzzles does not mean someone is going to be a good coder, but it will probably help weed out people that don't have the analytical skill that a company needs -- assuming the company needs coders with strong analytical skills.
Working for a company that has a need for people with strong analytical skills would be more fun than working for one that doesn't. Software that doesn't require thinking is a bit boring, even if there are parts like that in all software.
Personally, my respect for the company would increase if I solved a fairly difficult programming problem, and they interviewed heavily on working with other people's code, and making your code able to be worked on by other people (this is a kinda hefty topic...). I'd be pretty assured that I would be working in an intellectually stimulating environment with competent peers -- and that would be awesome.
I'm not aware of many other companies that put out "solve a problem" types of hiring screenings, other than google.