On the contrary - outputs are always inputs, and even if they were not - that is to say, the "digitalRead" read the output register instead of the actual pin, which does happen in some microcontrollers - writing to an output would still trip whatever is connected to the input.
Now, you may not realise this, but on the AVRs (and most other devices), there are no actual bit manipulation operations. Whether done in code or in hardware, what are performed are bit mask operations whereby the actual register byte is read, the mask (OR or AND or possibly XOR) performed and the result written back to the register. This may mean that if a particular bit is (possibly transiently) loaded to a state contrary to what the output register defines, then the bit will be changed by any operation purportedly affecting any other bit in the same byte-wide port.
And of course, it should go without saying, that when a port (bit) is switched from input to output, it immediately takes the state to which the output register was written even though the port was an input when it was written.
This is particularly important to remember after reset (which sets all output bits LOW) as fooled the fellow in this recent thread. :grinning: