Small mistake in the mode hooks for flyspell. Bigger change involves
creating local file vars with each invocation of utags. I also set both
tags-file-name and tags-table-list to be safe as long as they only have
strings and lists of strings respectively.
Finally got projectile-find-tag to properly behave with local tag
tables. The general problem is that projectile-find-tag looks at
variable/function called tags-completion-table for building its
completions. As defined in etag.el, the variable
tags-completion-table gets built by the function tags-completion-table
and AFAICT, once the variable is non-nil, it won't rebuild it. So
setting a hook to unset the var everytime I find a tag solves the
problem. This is slightly insane however, I should only unset the value
if I have to. Perhaps I could unset the table if projectile detects I
have changed project folders.