Thanks for the support and the questions.
The goal for us was to go to a true micro-services architecture so that we are able to release individual pieces of functionality at will without having to do a mega monolithic release. So, my client does have 100% granularity (if granularity can be expressed in %). 100% granularity means that each endpoint such as /dealers/GET and /dealers/OPTIONS gets its own independent Lambda functions. There are many pros and cons of doing this. The biggest benefit my client derives is the ability to perform micro-releases at will. The biggest downside is that there is heck of a lot of Cloudformation code and Codepipelines that are not always easy to maintain. To complicate matters, this client does have too many more environments (such as dev/test/prod) than most other clients. This multiplies the number of versions of Lambda functions they maintain through the product.
I hope to write in more details at some point soon. Thanks for reading!