Current universal-ctags still suffers from the issue.
Detecting command start might not be simple since they can be embedded.
It is not trivial indeed. And the other solution of being stricter parsing `function …` is tricky as well because the syntax is actually fairly complex (e.g. `function @(cat)` is perfectly valid Bash -- just learnt that though).
I think this should be forwarded upstream anyway though.