if you look in the archives for this discussion group at www.forum.swarthmore.edu you can see the "missing dollar" problem discussed back in March of '95.
Unfortunately, I can't seem to find my post on the subject at the time... but it suggested changing the values in the problem to make clear the error in reasoning... for example, if they were originally told the room cost $300, then they'd each pay $100... and if the room really cost just $25, and the bellboy was given $275 to return to them, but decided to pocket $272 of it and give each man just one dollar, the pattern of the problem would be: each man paid $99 (for a total of $297) and the bellboy kept $272.
Would you say -- that sums to 569, where did the extra $269 come from? You are counting the $272 twice, once as part of the money spent by the men and once as part of the money pocketed by the bellboy.
It's more correct to say: the men have spent a total of $297, of which $25 went to the hotel and $272 was stolen by the bellboy. If you want to account for the original $300, you add the three dollars the men received back to the $297 they spent.
In the same way, in the original problem, the men spent a total of $27, of which $25 went to the hotel and $2 to the bellboy. If you want to account for the original $30, you add the three dollars they received back to the $27 they spent.
P.S. I'm enjoying rereading the archives of this group from the mid-1990s... it's amazing how little has changed!