I think the end goal will end up with this method killed and end up with one array and a hierarchy like this:

files
|  \
jekyll_files static_files
|  \
posts pages
|
drafts

There is common functionality that should be hoisted out posts and pages. I think it makes sense for a site to contain files and as long as they quack right treat them all the same