Some wild Pokemon know moves that can end the battle, like Roar or Whirlwind. Examples being the wild Luxray on Route 5 that has Roar, or wild Sigilyph in Friend Safari that knows Whirlwind. Losing a shiny due to these moves would be annoying, so if possible, put those moves on an earlier or later level than the level they are encountered, so that the wild ones don't have those moves.
Also, I don't know if it is possible to encounter a shiny in the Safari Zone, but if it is possible, losing a shiny because the game randomly decided to let it flee, sounds stupid. IMO, either make it so that Safari Ball has 100% catch rate on shinies in Safari Zone, or shiny lock everything in the Safari Zone (except the Thundurus of course).