the FAQ states a good technical reason for avoiding map/grep in a void context. however, i think the most important reason is just that almost any time you'd want to use map or grep in a void context, what you really want is just a foreach loop or something.
map and grep have long histories as list filters that take a list in and spit a list out. using them in a void context reduces them to mere looping constructs. if you need a looping construct, foreach is almost always more appropriate. using map or grep just makes the code more confusing for no good reason.
anders pearson