I do not know git in enough detail to fully understand submodules, but my first thought is - does the standard checkout command even consider submodules when it fetches the code base?
If you have a good understanding of git the place to check is within the logs of a pipeline job as the script used to do the git fetch and so you can check what it is truly doing.
There is a thread on this issue from 2015, but I have no idea what if anything has changed in the last few years.
https://discuss.circleci.com/t/automatically-load-git-submodules/159/8
This link shows a workaround and provides a bit of background regarding SSH key management as that is how the details are retrieved.