A few thoughts:
It sounds like he's being rebellious. Separate the rebelliousness from the question of profanity, and discuss them separately. You might say something like "Asking questions if you genuinely want to understand something better is great, but asking questions to try to frustrate or annoy me is not. I'm getting the sense that you're doing the latter."
If he persists, put your foot down -- but be really clear that it's for the intent to annoy you, rather than because he's asking questions in an attempt to honestly understand something.
It may also help to ask him, openly and gently, why he's being rebellious. Sometimes rebelliousness comes from a perception that the rules are arbitrary or unfair. If you understand what he's feeling, you can be in a better position to address those underlying causes. For example -- Larks's suggestion that sharing the reasons you don't want him to swear may help. And maybe it would also help him to explain how this is a subjective issue, highly dependent on things like tone and social context, and perfectly clear rules are unfortunately impossible.
You might say something like "Asking questions if you genuinely want to understand something better is great, but asking questions to try to frustrate or annoy me is not. I'm getting the sense that you're doing the latter."
Telling someone who tries to wage status conflicts with you that you want him to stop fighting for more status is pretty pointless.
If it's worth saying, but not worth its own post (even in Discussion), then it goes here.
Notes for future OT posters:
1. Please add the 'open_thread' tag.
2. Check if there is an active Open Thread before posting a new one. (Immediately before; refresh the list-of-threads page before posting.)
3. Open Threads should be posted in Discussion, and not Main.
4. Open Threads should start on Monday, and end on Sunday.