Adding the role certainly helps make it “programmatically determined” as part of 1.3.1.
I’ve found the heuristics fallible as well, they tend to work for simple test cases but not for more complex layouts with (for example) nested tables.
Generally I come across layout tables on old, internal and/or enterprise systems. If I come across a layout table with role=”presentation” it basically means the developer knows about accessibility but really can’t update the system to use CSS layouts.
Given that you have to include a lot of mark-up to do table layouts in the first place, I don’t think an extra 21 characters (quoted) is unreasonable, and it makes the meaning explicit.
-Alastair