If someone prefers a narrow tab width and breaks lines based on that, then someone who prefers a wide tab width will get overfull lines:
20 column limit, 2-column tabs: if (a==b) { | if (b==c) { | some_function();| 20 column limit, 4-column tabs: if (a==b) { | if (b==c) { | some_functio| <- overfull line
If someone prefers a narrow tab width and breaks lines based on that, then someone who prefers a wide tab width will get overfull lines:
Either way, the project has to set some sort of official tab width. Or at least, a maximum tab width.