inconsistent results for basename?
Took some digging but the answer is available in Unix &amp; Linux:

Process substitution (the $(...) part) occurs before find gets even executed
So before find even starts, $(basename &quot;{}&quot; gets executed returning {}, turning your command into find . -type f -exec echo &quot;{}&quot; \; 
Now find starts and just echos each file found.

The output of dirname just looked right because dirname {} (or actually dirname ANY-FILE) always returns . (see the part after Either the dir is &quot;/&quot; or there are no slashes in dirname.c).
As an alternative you can use
find . -type f -exec sh -c 'echo &quot;$(basename $1) ++ $(dirname $1)&quot;' _ {} \;