The problem most likely is the per-chip-calibration (@notaz) and to some degree maybe within the driver (how it considers calibration).
The driver doesn't care about calibration, it passes it through to the chip without looking at it. The data is likely parsed by ARM9 CPU that sits inside the chip, and we'll never know what's going on after that.
>Last but not least: I still hope for input from the hardware engineers / firmware devs on this, as the problem is quite probably already identified somewhere between driver and per-chip-calibration.
Not going to happen, the chip is out of production for quite a while now and the people who designed it already switched multiple projects or even jobs, so even if you succeeded to get their names from TI (which would be very difficult all by itself), it's highly unlikely they'd be able to tell you anything. That chip was developed in like 2006 or 2007..
Now, I might be talking completely rubbish here, since I do not know anything at all about this, really, but my thought would be that with Notaz special kernel module, that can dump calibration data to the file system and read it back again, there might be a possibility to invent some sort of self-calibration tool? As in, something that
* reads the dumped-out data
* does some measurements
* writes back a new version of the calibration data with some adjustments
* restarts the module/reloads calibration data
...and then loops.
Now, this would hinge on firstly, having a good understanding of the calibration data format and what part of the data controls what; secondly, a possibility to do meaningful measurements in some way on the pandora itself; thirdly, to be able to map perceived problems in the measurements to the correct calibration data. That is not at all trivial, I guess. But, still - An idea.
I doubt that would work in automated fashion, unless some sort of metric can be found. The chip as it is now is highly unstable, if you reload the driver like 5 times without making any changes you'll get different behavior each time, and if you actually start making changes you won't be able to tell if those changes actually have effect or it's just acting randomly like it always is. This is what I learned trying to influence it's behavior by doing driver changes, the same happened to MWeston (more or less) while trying hardware changes too.
That said, if someone wants to play around with this mystery calibration data in a hex editor I can provide a dumper and special version of the driver that loads calibration from a file instead of internal EEPROM.