>>27.2
***high five clap*** It was a good dare. I would have fun doing it again.
>>27.3
That's true. The only thing I was thinking of was spagetti code in long imperative functions with lots of nested loops, from the point of view of a quality assurance dude(te) trying to come up with a set of inputs to the function that will test each branch of code in the spagetti. But I don't know, maybe there is some equivalent horror in functional programming, as imperative code doesn't need to be spagetti.
Yeah global variables can be tricky. The most recent time I've used them was when communicating with generated C code. They can make decent, non-thread safe, dedicated, one way communicate channels between two other wise isolated parts of a program when it is impossible to get the two parts to talk to each other in a better way. But like you mentioned, they can often be avoided by using a different structure for the program.