Many companies are penny-pinchers and can't stand the thought of some people getting more than they actually spent. I don't know either, and couldn't stand working in such companies, but I've definitely contracted for companies like that and it seems miserable.
Costs differ by location. Formal per diems, even with some attempt to adjust, end up screwing employees who are in higher cost locations (and/or have higher standards). Which may be fine--or not.
But, to the degree that fraud becomes a real issue, it may be the simplest thing to do.
Perhaps. But I also have standards for both accommodations and meals that I never pushed too hard on but may be different from those you have. If work travel is consistently costing me a lot of money, I'm going to have an issue.