This was the problem when there was a suggestion back about ten years ago for the jersey for the best sprinter on a GC, to tell who the best sprinters were climbing-wise. Too open and you end up with people like Valverde being eligible which is obviously a joke. Too restrictive and you'd end up excluding people like Óscar Freire who would mix it up on the Cauberg.
Also the type of road makes a difference too, of course, how technical the run-in is, how wide the roads are. I think the roads need to be a bit wider for a real bunch gallop, but wide and non-technical roads can also turn something that does fall into the puncheur remit into an actual sprint. As a case in point, the Hatta Dam is a sprint, with the steep part being so short, but it's so steep that you end up with time gaps, and also the first two winners there were heavyweight sprinters, but you had Alejandro Valverde in 2nd one year. On the flip side, a climb like the Côte de la Croix-Rousse is 1,4km at 4,8%, falling into the puncheur remit, but when the Dauphiné finished atop it in 2011, it was won by that super puncheur John Degenkolb - though you did have Joaquím Rodríguez in 5th. Another example would be that uphill finish in the Volta ao Algarve in 2010 in the sleet, when André Greipel and Jürgen Roelandts sprinted out of the bunch to take a win by a few seconds ahead of Samuel Sánchez and clear time gaps were opened - but it was nevertheless a sprint, just with time gaps far bigger than you'd usually see from one.
As for when it becomes a "reduced bunch" I would say that if the results sheet shows 50% or more of the péloton to have been in the bunch at the finish, or within a close enough time to have been in the bunch at the point of setting up the sprint but sat up late on (especially when it comes to one-day races), say within a minute. That does mean that in smaller races you allow a wider definition of a sprint as a bunch of 50 might be half the péloton in such a race, but only a quarter of the bunch in a WT race, but at the same time those races with smaller pélotons are harder to control especially with reduced team sizes, so the sprinters have to do more work in those races to earn the right to sprint than they do when they are better protected in larger races, so more races would class as reduced bunch sprints if we didn't adjust.