Last modified: 2014-07-16 18:00:53 UTC
Parser function syntax is generally {{#function_name : expr1 | expr2 | expr3 | ...}} Currently VE sees this as a template with name "#function_name : expr1" and arguments "1 = expr2", "2 = expr3", etc. This makes it impossible to edit expr1 in VE. Same for parserfunctions like urlencode: If the template editor cannot handle these then it shouldn't present an editor for it.
Yes, we need a special form of editing transclusions which aren't templates; I can't recall whether Parsoid gives us sufficient information to recognise these as different except for introspection.
Many of the parser functions are rarely used in the main namespace (#if, ...), but some of them are really important even in the main namespace. For example {{formatnum:...}} is probably used a lot there.