Echoing ~Smoothie~'s comment:
An outsider Pokémon will often not obey the player's commands if its level is too high and the player does not have the appropriate Badge, Stamp, or number of Badges. Having all eight Badges or the Island Challenge Completion stamp always makes all Pokémon obey the player. This mechanic exists to prevent players from trading in a high-leveled Pokémon from another game and easily beating the game.
Thus, obedience has no play whatsoever if it's your own caught Pokemon. It only applies to "outsider" or "traded" Pokemon. Since Snorlax was caught in the wild and not traded, over-leveling would not affect obedience. This is an exception case for Mew and Deoxys, if they're not caught in a Fateful Encounter they'll not obey your commands regardless of any badges obtained or being traded.
In Pokémon FireRed and LeafGreen, Emerald, Colosseum, and XD: Gale of Darkness, Mew and Deoxys that were not met in a fateful encounter will always disobey the player, regardless of Badges or being outsider Pokémon. This exists to hinder players who cheat to obtain them.
So, sorry to say but friendship does not affect obedience in any way. It only applies to traded Pokemon which your Snorlax wasn't, so it would obey your command without any disapproval.
Hope this helps!