There has to be a cut off somewhere and 18 is the limit, which is lower than some other countries. It can't be "18, give or take a few months either side" unfortunately. Your DS still has the option of drinking at home or having a pint with his meal if it's absolutely necessary that he consumes alcohol.
I didn't like the personal liability of accidentally serving someone underage alcohol when I was a bartender, but I suppose it did the job as I was meticulous in checking IDs because the risk of a fine was hanging over my head and on minimum wage, I couldn't afford it.
For that reason, it frustrated me when underage people, and the parents of teens below the age of 18, insisted on me bending the rules because "he's almost 18" because, while it would have made their day I'm sure, if I got caught I'd get in trouble. Any one of those people could have been a "secret shopper".
Asking bartenders to risk their job and a fine to allow someone to illegally drink in their premises is so unfair on the bartender in question. I also got quite a lot of grief from some customers for refusing to sell alcohol to them if they were underage or didn't have ID.
That's why although I agree with the 18 limit for buying alcohol, I was never a fan on the way the policy was made to put the blame at the feet of those on the ground rather than those caught buying alcohol underage and the parents who (more often than not in my personal experience) were the ones encouraging and insisting on it.