You go through a river crossing? May be the ecu got wet.. mmmmaaayyybe... i have had issues eith an injector not firing and it turned out to be ecu... just something else to try and eliminate.
That can happen, I replace about 1 PCM a week on average. Usually we are inheriting cars from other shops after they spend weeks trying to figure it out. The PCM drivers that fire the ignition coils and the injectors can fail, usually it is more to do with a short in the coil windings causing excessive current through the transistor, or WATER entering the PCM. In this case I do not think this is it. I think this will have something to do with the 02's not reading correctly, or possibly the ECT (Engine Coolant Temp) sensor. Very difficult to try and diagnose over the internet. There are other possibilities but this is the first place I think he needs to look.
Based on the fact that the PCM thinks it is running lean based on the fuel trims. The ECT failing can cause the PCM to default to -40f, it dumps a bunch of fuel in to compensate. But normally this would have a lack of oxygen in the exhaust, and the PCM would try to compensate by trending the fuel trims into the negatives to pull fuel. The thing to remember is the 02 sensor only measures 02, not fuel. So any time a combustion event does not take place, it is pumping oxygen past the 02 sensor, making the computer think a lean condition is happening. Since it runs smooth, I think we can rule out a misfire. It is something that is common to all cylinders. So a Sensor, Induction, Exhaust, Mechanical Timing, Fuel Pressure. The generic OBDII data stream is not packed full of information, but what is there is helpful to try and determine where the root cause may be. Even with a new fuel pump, if the pressure regulator is bleeding off the pressure, or there is a blockage somewhere, then it will run lean.
Anyways If he can borrow a scan tool, and set up a time, I would be willing to try and walk him through trying to diagnose it. As far as checking timing, the easiest thing to do is to pull the valve cover, set the crank pulley notch to TDC, and check the marks.