This is an old revision of the document!
TALES can't handle few cases that happen often and seem quire reasonable to do in templates.
It can't compare values:
<option tal:repeat="opt options" tal:attributes="selected php:opt == selected_option"/>
It can't compute values conditionally:
<tr tal:repeat="row rows" tal:attributes="class php:repeat.row.odd ? 'odd' : 'even'"/>
It can't pass arguments to functions:
<h1 tal:content="php:substr(header, 0,100)"/>