The way deploy handles submodules is somewhat of a deal killer.
Instead of simply sending the change, any change to a submodule requires the entire base of code to be replaced.
This is really really bad because:
Large portions of a website are not usable for the entire period of the update
Even a change to one file could mean thousands of files deployed
Deploy time is extended greatly
In our case, we have WordPress as a repository, all plugins as a submodule and the theme as a submodule. When updating a plugin, the deploy rewrites the entire plugin base and takes about 1 hour. This is devastating for the site during that hour.
Complete We've implemented this suggestion!