I’ve typically used gcp projects as security boundaries as well as organizational ones. So if your teams need the same permissions across all stacks you could keep it as one project or several, but if you need different permissions/teams/etc I think it’s easier to split the stacks across projects.
Personally since there’s no limit to the number of projects you can have I do like separating things just for organising but if your network is complicated YMMV