Well, I think that you can do some short-circuiting. Assume we have five items and that, at some point in your process, you have found that the maximum distance is at least 4 (e.g. you've found at least one pair of students that have only one item in common,). Then, when you are comparing some other student pair, if you find two items in common, you can stop checking the other items, you know that you're not going to find a better distance (well, in fact, you can do that even earlier: as soon as you have found one common item, you're not gonna find a larger distance). In other words, you would still have to go through every possible pair, but you can often cut down the number of items that you will need to compare. Not sure this helps much, though, it depends on how you implemented your algorithm. And maybe you already figured that out and I am just stating the obvious (please forgive me if such is the case), but I still wanted to say it just in case it might help.
Comment on Re: Help thinking about an alternate algorithm
This is similar to the "alpha-beta cutoff" that is used say in computer-game play. As soon as you determine that a player would be worse-off than you already know he could be, then you stop searching because you don't care how much worse-off he would be. But I am not sure that this optimization would really apply because "the score of any particular kid" depends entirely upon which other kid you are comparing him to. It is a hamming-distance problem.