Why is the Poke Flute necessary? There doesn't really seem to be much preventing you from fighting Snorlax without waking it up. Pokemon can be caught while sleeping, and attacked too - hell, Snorlax itself is prone to going back to sleep mid fight.
natural sleep: impervious to attack, problem
battle sleep: it's fine
Hmm, I'm sure R_N is joking but maybe there is something to that. Snorlax sleeps a lot, which means it would leave itself vulnerable all the time. Whenever Snorlax enters into a deep comatose-like sleep after having consumed a lot of food, its body may undergo a hibernated state where its muscles stiffen & possibly decrease its metabolism (& maybe external body heat) to make it more durable be it to environmental factors or something attacking it; it essentially becomes more like an object than a Pokemon, at least by the Poke Ball's recognition program it does.
"Can't people just go around/over it"? Yes, yes they can. For the player character, honestly, there's really should be nothing stopping them from just climbing over Snorlax and find enough space to squeeze around it. Of course that sort of thinking also can be applied to other things like the small cliffs you can jump down from, cuttable trees, smashable rocks, etc.. It could be the player character may be looking for a more permanent solution that will allow everyone a chance to pass through rather then just them, at least when it comes to Snorlax (not everyone is a nimble as a kid, also land vehicles aren't able to pass through like ones used for deliveries or mail).
Another question that is raised by Johto is that you don't need the PokeFlute to wake up Snorlax, a recorded tune played from the PokeGear is also enough to wake it up. Are you telling me the various tool devices we get throughout the games can't connect to some kind of service where we can download a PokeFlute tune (especially since its a reusable Awakening meaning once you have it you don't ever need to buy Awakenings again, at least when it's an item for some reason you can't use the recording version in battle)?