Tom - *nothing* in the user interface but the links target text will change. I repeat: *nothing* but the links target text.
The fact that you can follow only one link per click is a constraint by a web browser - how would you follow three links with one click?
The fundamental assumption is: If url creation is expensive - which it is a fair bit in OpenACS - then defer it till you actually really need it.
How do you come to think that a /o/ link would be be shown without description?
/o/ will supersede the PL/SQL function site_node.url(node_id). Your new query will look like this:
select '/o/' || object, ... from ... where...;
instead of
select site_node.url(node_id) || '/view-object?object_id=' || object_id from ... where...;
It's a light-weight change. Nothing fancy and straight-forward!