First, not all paths are equal nor work the same way. The execution path, which is what you are getting when running pwd, depends on the connection plugin, it normally is the ‘login directory’ which for ssh is usually the remote $HOME. For most plugins this has not changed across versions.
The ‘local’ connection plugin (default for localhost/local_action) had a bug introduced in 2.0 in which the path changed from ‘playbook directory’ to invocation path, 2.1.2 fixed that bug.
This is what you are seeing in your tests, which do not really apply to the template plugin.
Ah, sorry, I seem to have misinterpreted the problem. The template patching i was referring to was for src=, for dest= you rely on ‘execution pathing’, which thankfully I also answered in the previous email.
src gets handled mainly by the action plugin, dest gets handled by the module of the same name, which does run relative to execution path.