Maybe "rude" is an exaggeration, but I certainly don't find it polite. I realize, though that people who use it aren't intending to be impolite, so I kind of accommodate.
When my B&B guests say "Thank you for the wonderful breakfast" I generally say something like "You're very welcome" or "I'm glad you enjoyed it".
I think the only time "no problem" might be o.k. would be if someone drops a bunch of books/papers and a stranger helps to pick them up. If the person who dropped the items says "Thanks so much for helping" The "No problem" would in my opinion not be rude. I would still prefer "you're welcome" though.