Common pattern to place all non-lambda resources in seperate stack?

I’m wondering if anyone else has a similar set up where you have a monorepo with related lambdas grouped together, but then all other resources in their own stack?

Cross cutting concerns isn’t issue, but I feel like having one stack with all non-lambda resources might be easier to reason about and I could see keeping track of resources and how they relate becoming quite difficult in an app with 100+ lambda functions.

Also is there anything I should be doing to ensure critical resources are not deleted? Right now I plan on just setting up a dev and prod accounts and specify retain resources in my yml files where needed.