Well, the problem is we have several levels: shell, controller, deployer

It seems easier to pass null at any layer where no manifest is provided, than to provide 2 versions of deploy at each level (since ultimately we should handle null as "no manifest" anyways).

Also, I think there will definitely be applicability of manifests for jobs post-M6.