Engine runs at the gate with passengers are not uncommon. As long as the flight crew are the ones in the cockpit doing the engine run and an AMT is on the headset monitoring the work being done on the engine. This is done to save time. A fact of life in the commercial side of the industry.
As j7915 stated, situational awareness is a must as well as having all loose objects removed/secured. My AF training is still with me as well as AA's. As for the possibility of a fire, a fire extinguisher should have been within reach in case of an emergency.
But it seems as if this tragedy was a simple case of human instictiveness. A cap was blown loose, heading towards the inlet. Mr. Buchanan reached for it and...
As I posted previously, this was a very tragic accident, and one which we should all remember and learn from.