keepdir is currently defined as a shell function in install_functions.bash. However, PMS section 11.3.3.8 "Installation commands" says: These commands must all be external programs and not bash functions or aliases—that is, they must be callable from xargs. Furthermore, the implementation in Paludis supports -r/-R options that are neither mentioned by PMS nor used by any ebuild in the Portage tree. (And it's broken: keepdir -r will pass the option to dodir which will create a directory named "-r". ;-)
Fixed in upstream git: http://git.exherbo.org/paludis/paludis.git/commit/?id=1b60f1a7d65066b6906ff5caa14739f67f49a80f (For the record I'd have been inclined to call this an error in the spec, but oh well.)
This was fixed in 1.4.1.