God yes. As a .net developer, it's extremely rare for a day to go by where I don't put them to use (via linq). They get so much stuff done.
yes, of course. And obviously I would do it with loops, so you don't have to. Ultimately a Turing machine needs to have loops somewhere. The best you can do is abstract them.