from a syntax perspective I think it's fine, however how is this being done?  I think we can get alot of functionality out of using templating rather than doing our own parsing or eval.  For Bokeh we are already using eco templates, in which case, this kind of thing could be gotten by doing something like the following

template({'d' : data_point, 't' : tool_vars})

strings would look like this

'index' : "@t.index"
"radius' : "@d.radius"

which is less nice, but it's more general, and then people could embed eco templates to get more custom tooltips which is nice