I've read the whole thread, the source code (quickly) and the patches to ahci.c and sata_via.c, and here are some comments:
It looks like support for the VT8251 was added to the ahci driver in kernel 2.6.18, and was then updated in 2.6.20. The code is different from the patch Leopold is using with 2.6.16. As I am not an expert in this area, I can't tell whether both versions are equivalent or not, but I'd guess so.
On the other hand, I do not see VT8251 support in the sata_via driver in the kernel, so I'm not surprised that it doesn't work properly for Leopold. But again I am no expert in the area, so maybe the sata_via driver in the kernel is supposed to work for VT8251-based systems. Jeff (cc'd) should know better.
I also see that there were many changes to these drivers post-2.6.20, so maybe Leopold could give a try to Linus' latest kernel (2.6.20-git6 as I speak) and see if there are any improvements.
As for the VIA IRQ quirks, the version we have in 2.6.20 does not handle the VIA chips more recent than the VT8237A. If the VT8251 needs it, then we have to add it. Alan?
*If* the VT8251 needs the VIA IRQ quirk, then the attached patch may help. Leopold, can you give it a try?