...Taking your example of news urgency, the corresponding algorithm would certainly not fit into a single attribute (because of the "if" constructs it's likely to contain), but could simply be written as :
<page jx:cache-key="news.id" jx:cache-validity="com.my.NewsHelper.getValidity(news.urgency)">
Sounds good!
Moreover, I find that being limited to a single attribute enforces good SoC by forbidding complicated code in the template.
+1
-Bertrand