I think the PCM has the ability to "learn" what is going on via the oxygen sensor and make changes.
However, the ability is small, say 5% or so before you are going to set a code and drop into open loop which trashes any semblance of fuel economy.
The powertrain control systems of today are extremely complex, there can be cam AND crank sensors, and the scan rate on the PCM is fast enough that it can compare the angular accelerations from each power pulse, sort them relative to ignition event, and pick out a "weak cylinder".
The good news is that they are even better at self-diagnosis. The bad news is without the appropriate interface pendant (scan tool) which displays data and can get into the various categories of codes, it's nearly impossible to DIY-fix unless there's an obvious mechanical problem or a wire is hanging off.