Warning to users of some vendors LCD keypad shields

dhenry:
AVR's output, even in the push-pull mode, isn't a strong voltage source in that it has substantial output resistance. So even if you short the output pin (in a logic 1), you don't get much current (40-50ma maybe) out of it. The design here isn't a great design but it is not a deadly design either.

My real world measurements on an actual LCD shield using this circuit differ from your guess.
I measured 95ma being sourced from D10 when D10 is high.
That is well beyond the 40ma maximum rating for the m328 listed in the
Absolute Maximum Ratings table (28.1) in the Electrical characteristic section.
There is also a footnote with that table:

Stresses beyond those listed under “Absolute
Maximum Ratings” may cause permanent dam-
age to the device. This is a stress rating only and
functional operation of the device at these or
other conditions beyond those indicated in the
operational sections of this specification is not
implied. Exposure to absolute maximum rating
conditions for extended periods may affect
device reliability.

Also down in note 3 subnote 2: (Arduino D10 is AVR port B bit 2)

2] The sum of all IOH, for ports B0 - B5, D5 - D7, ADC6, XTAL1, XTAL2 should not exceed 150 mA.

Add some additional i/o to digital pins D11 (B3),D12 (B4) and D13 (B5) and you might even
unexpectedly exceed the 150ma rating.

I take the electrical characteristics from the manufacturer very seriously and from my real world measurements
the un-modified shield vastly exceeds the manufacturers absolute maximum ratings for an i/o pin.
That is the reason that I would say the design could cause damage to the part.

In my opinion it is not worth the risk. Either don't use backlight control, modify the board,
or use D10 as recommended in the OP or in response #3 to avoid the short.

--- bill