On 4-5 hour long assignments shooting events such as anniversaries/weddings/birthdays etc.. the clients have asked me to help myself to lunch/dinner. Is acceptable to do that or will it look completely unprofessional?
Yes it is. In fact, I've seen many photographer contracts for a wedding explicitly call out whether or not the photographer will be getting a meal.
I've read on some forums that some photographers require a meal, but I think it's in better to taste to make it an "option" on the contract.
If the client said it was okay, then it's okay. Now, of course you want to make sure you do your best to eat quickly, make sure you don't disturb guests and ensure you don't miss any important shots.
I'd say it'd depend on the duration and location of the event, as well as your duties there.
Say you're shooting a beach wedding at a remote site, where there are no external catering facilities, which requires you to be there for a weekend. I'd certainly expect my employers to provide for me in those conditions (and provide lodging too as well as transportation).
4-5 hours I'd just take a few candy bars or some jerky and a few bottles of water, and tough it out unless explicitly offered something (in which case I'd accept out of courtesy unless it'd prevent me from doing my job).
I'm not a pro photographer, but in my line of work we can have the same situation. If there's no facilities to go out for lunch, and no way to bring your own (say you're working in an environment where bringing in food items is not allowed, even in sealed containers), the customer should provide.