You know, I feel like my oldest was a little snarky at times with me, too, compared with the other two (which I'm not supposed to do, compare, and there it is).
In hindsight, I think maybe he wanted a separation between himself and his younger sibs, like he wanted to be treated differently, older, less mothering, you know?
And like yours, he did everything right. Great grades, no trouble, focused, decent to his friends, etc.
Anyway, he's almost 24 now, graduated college, has a great job. Still a little more standoffish than the other 2 (there I go comparing again, grrr).
The relationship we have now was a gradual process of change, and it occurs to me that once I let go of him, he started wanting to know me again.
Not sure this makes any sense. Just that I think it's really gonna help your relationship with him for him to go away to school. It's gonna turn out great, I promise. But you gotta stop saying "Where are you going" to him, and instead say something off hand like "Cheeseburgers for dinner if you'll be home by 6 or 7", or something to that effect. Like he's a man now (do not giggle when you read that), and wants to be treated as such. Or something.
HTH!
:)
ETA: When I dropped him off at school the first time (4 hrs away), and it was time for parents to leave, I tried not to be weepy, I tried to say "James, I'm so proud of you", and he said "Mom, I know, don't", cuz he was a little weepy too.