The more subtle questions might hinge on a distinction of singular vs plural or other 'wording' aspects, so that those who have the strongest grasp of the material can differentiate themselves.
You're grading attention to wording details, and not comprehension of the material. Grading attention to wording would be appropriate if you were teaching reading comprehension, but it isn't specifically relevant to teaching computer science.
It would seem impolitic for me to say that I made that item difficult deliberately, but it is true.
If you ask a trick question, you're playing a trick on your students. Ok, so I used a word trick in my last sentence, but there's some truth to it. You aren't making the question difficult by requiring deep knowledge of the material, but by requiring subtle understanding of the question. A good trick question announces itself.
To give an example, as a TA in a programming class, I gave my students some very short code snippets and asked them what they did (more precisely, I asked what the code printed, or the final value of a variable). I started with easy things like x = 3; x = x + 1
and finished with subtle things that I only expected the most advanced students to grasp, like x = x++
(it was a C class). I warned them in advance that there would be trick questions. I don't have exam results, since I was only TAing and not doing the exams, but from reading the students' faces, I do think that the brightest students understood, and the slower ones didn't but kind of got the idea that there was a difficulty, which is what I was aiming for. Note how the subtlety was packed in the code and highlighted, not hidden under a word trick.
To test a deep understanding of the material, explore finer points of the test material. For example, put some concepts that were covered in the lecture together in a way that wasn't covered, and see if the students are able to relate them to the lecture material.
Instead I usually point back to the textbook or my lecture to say that I actually explained and even stressed the point.
What's your students' reaction here? If it's “ah, I see, I hadn't understood/remembered that part of the lecture”, you're doing it right. If it's “ah, I see, I hadn't understood the question that way”, you're doing it wrong.
I usually get a good spread of numerical grades, so experience says that I am doing this correctly.
I don't see how that follows. (After all, random grade assignment would get a good spread.)
I think your students would be somewhat justified to consider your grading unfair, since it isn't based on knowledge or comprehension of the material. Yes, attention to detail is a useful thing, but trick questions, not so much.
You are also heavily penalizing students to whom your course is in a foreign language, and possibly students with reading disabilities. The former may or may not be acceptable; the latter, if it is the case, isn't.
In a workplace subtleties will be vital, so it is not a manufactured situation to include them in my teaching, and I only use subtle distinctions in tests where they exist in the material, and are worth emphasizing.
I'll now put my teacher hat back onto the shelf where it was gathering dust, and put my engineer hat back on. I regularly read and write requirements documents. (A test question is a kind of requirements document for the answer.) Requirements documents should be precise, but they should not be subtle. If I notice a subtlety in a requirements document, I'm not going to blindly implement what the document says, I'll send it back for clarification. If I'm writing a requirements document, I pay attention to being clear, I'm not going to convey a requirement through something like a plural. If the plural is at all important, I'll at least highlight it with a word like “multiple widgets”, and probably “multiple simultaneous widgets” or “multiple concurrent widgets” or whatever it is I actually want.
How do you handle situations where students push back on the wording of test questions or answers?
Given your description of the tests, in this situation, I think you should change the way you word your tests.