Earlier quoted context omitted.
I think the biggest problem with translating this into code widths is that we use indentation liberally. Seeing 6-12 characters taken up by whitespace is nowhere near uncommon. So, given that, perhaps 80 characters isn't so tyrannical...
I've seen code where 20-odd characters were taken up by whitespace. Of course, at that point, you really want to split it out into different, named functions... code like that is unreadable for entirely different reasons than line lenth. Similar things the case for almost every single case where a line might become "too long" - I don't think the length is actually the issue so much as the complexity.
class A
{
A::a()
{
if (expr) {
do1();
} else {
do2();
}
}
}