Is it possible to get puppet to combine recursive and non-recursive changes to a given directory

Solution 1:

Just to put it as an answer also: you can't.

The namevar parameter is path, so you can't have 2 file resources with the same path.

Check the documentation about file resource.