If you have multiple projects on your machine that use JUCE, you get to a problem where you update to a new release and now you have to check all of your projects if they still compile & work. Using git submodules solves this problem. You essentially have a copy of JUCE for each of your projects and the exact version is saved in your git history. Know updating to new JUCE version can be done on a per project basis.