See the thing you have to remember here is the fact that the writers have basicaly screwed with every character on the show so far. They set up a set of points then dissregard them when it suits. They have done this on all three shows.
They have messed with Mac's character on a few points, Hawkes and Flack this season for instance. But he was still right to call out Hawkes (Doing it in front of the lab was a mistake, but as I commented on the spoiler thread I think was due to the fact that I feel he was upset that Hawkes didnt trust him enough to tell him, he had to find out third hand.) And as far as Flack goes, Mac was by the book. Flack didnt like it then tough, but to me he was ensuring that Flack was seen to be free and clear and above the book.
With the case with the boy (not seen the ep so not sure of the facts) I can see why Flack was mad, Mac did seem to throw aside his own rule here. (Will be able to comment better once I have seen it as season 3 starts her in 2 weeks.)
I dont see Mac as a hypocrite I see him as human with faults. He has high standards for his team he knows what breaking those standards will do to a criminal case. The writers screw with that ideal, and in doing that they need to address it in some way, as in the conflict with Flack over the boy and his father. To me messing with Mac's ideals is being done because Reed is on the scene. With Reed in the picture Mac has a new frame of reference. Mac now has a tangeble connection to Claire, if this is threatened in any way to me Mac is going to crack. As would anyone in the same situation.
People complain about Mac being Superman, but then he steps out of line into the human world and they complain even more.
Me personaly if I was a victim and needed help I would want Mac working the case.