initialize variables inside void setup() or before it?

It seems like I should declare variables ahead of setup() and initialize them inside of setup().

From my point of view, the variable should be initialized when it is defined. There are cases where that is not practical, such as when the initialization relies on hardware functioning, but those cases are pretty rare.