Bingo! It's just not fair to use the rule in an unofficiated match.
I think the "shirt touch" foul is the equivalent of an occurrence that's quite frequent in golf. Even on the PGA tour, if one accidentally knocks the ball a few inches off a wooden/plastic tee, there is no penalty. Golf understands that players will try their best to avoid doing this, but also recognizes that penalizing a player for such a minuscule infraction would compromise the game as well as introduce an unwanted element of luck.
Pool needs to wise up and recognize that similar reasoning should apply to the "shirt touch" foul. If no ball is moved, penalizing a player is, in my view, just plain silly and randomizes the results.
As far as the golf rule goes - it's a bit different, but I get your point. In golf the ball is not "in play" until it has been intentionally swung at. (kinda like the break shot in pool - each hole starts anew with putting the ball "in play") So, in golf, if you were to swing and whiff on your tee shot, that ball is now "in play" and you were to then accidentally knock it off its tee, you would incur a penalty.
So, to compare golf to pool, when Johnny accidentally touched the cue ball with his shirt, the cue ball was already in play (being in the middle of a game) so he would be penalized.
Personally, I have never agreed that something touching the cue ball should be a foul. I think the cue ball should have to actually be moved for there to be a foul. But I don't make the rules.