initializing LCD library within setup() ?

LiquidCrystal lcd(53, 51, 41, 37, 39, 35);

void reinitializeLCD() {
  LiquidCrystal lcd(53, 51, 41, 37, 39, 35);

With this code, you have a global variable named lcd that was created by the LiquidCrystal constructor.

You also have a local variable named lcd that was created by the LiquidCrystal constructor.

They are not the same variable, and are not interchangeable.

Whether creating a local variable performs some hardware initialization or not, I don't know. Since there is only one piece of hardware, if there is any hardware initialization going on, it is going to affect that piece of hardware.

cr0sh is right, though. You need to fix the real problem, not mask it this way.