Suggested by @kcooney , it's to allow implementions a way to have factories that accept multiple parameters of different types. For example, CategoryFilterFactoryParams has a getCategories method and CategoryFilterFactory knows about it but other implementations of FilterFactory don't have to get bogged down with whatever other implementations need.

Now that I look it over, I think I see what you mean. @kcooney , can you chime in?