One of the perks of being paid salary is flexibility. I think it's okay to take a two hour lunch or run personal errands if need be. But I also think if you do you should make up those hours at some point during the week whether it's going in early, staying late, working from home, etc, which is what the honest salaried workers do.
But it's not about making it up during the same week. That's what salaried means. I am salaried and I am paid an ANNUAL salary - it's not a weekly rate or an hourly rate.
I am expected to normally work 5 days a week, and have a nominal schedule that is 8 hours of work per day, but some weeks I will work 50, 60 or even 70 hours - some of that is from home at 2, 3 or 4 AM.
I believe it is against the labor regulations to treat a salaried employee like an hourly employee when it comes to arrival time, departure time or lunches and require that they make up the hours that are missed.
I remember in the late 80's or early 90's there was a landmark case of a major corporate employer that was docking employees for pay when they worked fewer than 40 hours - they were treating the time worked like an hourly employee - except that they didn't pay overtime to these employees. There was a class action suit, and the employees won - the court required that the company pay employees for all the overtime that they would have been paid if they were hourly.
Basically, the distinction between hourly and salaried is that the salary, your pay is not based on the amount of time you work. Things like performance reviews, raises, and even termination can be based on whether or not you are working the expected minimum hours, but not the amount that you are currently being paid.
If you treat salaried employess like hourly employees some of the time, you have to do it all of the time.
Companies have learned that for quite a lot of job functions, the highly skilled workers required to do the job would cost a LOT more if they were hourly and had to be paid overtime when they worked extra hours. The trade off is to make them salaried and allow them the flexibility to work the hours needed. The really smart employers extend that flexibility even more to allow for work/home balance that improves the job satisfaction of their employees.
None of this excuses the behavior of the chronic abuser of salaried status, but if a company is handling things properly, that person is going to be shown the door or at least get a bad review when the annual appraisal comes along.
For myself, at this point in my career, I have decided to use the flexibility to my advantage when parenting my two young daughters - I make sure I'm there for as many doctor's appointments, teacher conferences, and sporting events as I can. I feel comfortable because I show my dedication to the job by not complaining about needing to work in the middle of the night sometimes, and having to work weekends other times.
I'm not really concerned with what someone else is "getting away with". Having been a manager, you never know what arrangements have been made with another employee - there could be circumstances where the other employee has agreed to a reduced work schedule because of personal, family or health issues. You just never can tell.
All you can do is take care of your relationship with your employer - come to an agreement about your work status, and then live up to your end of that bargain - or if you choose to - exceed your end of the bargain and work to ensure that you get recognized for that.