pinMode and digitalWrite/Read

Can a pin that has been set as an OUTPUT be used for a digitalRead? And can a pin that has been set as an INPUT be used for a digitalWrite? Would doing so cause and problems with the way the program runs or the Arduino board itself?

You can use digitalRead() regardless of the mode of the pin.

If you use digitalWrite(pin, HIGH) on a pin that is set as INPUT it turns on the internal pullup resistor.

...R

(deleted)

Yes, and on the ATmega microcontrollers read from an OUTPUT does what you expect - read the
state of the actual pin. However writing to an INPUT has a special function, controlling the in-built
pull-up.

pinMode(pin, INPUT_PULLUP);

is equivalent to

pinMode(pin, INPUT);
digitalWrite(pin, HIGH);

If you set an output pin to HIGH, then short it to ground and call digitalRead() you'll see LOW, then
you'll see smoke as the chip burns out (well, maybe not smoke).

Other architectures than the ATmega can and will be different here. The Uno, Pro Mini, Mega etc Arduinos
all use ATmega processors though.