I thought lambda was configured to use a single exit IP that rotates every 4 hours. How many IP's are you getting via this method, and are you using any tricks (multiple accounts, etc) to get a wider variety of IPs?
To be honest, I have no idea. Maybe I'm even wrong about why it works.
I have a toy service with ~200k requests/day to a public service and I was blocked all the time.
After I changed to use API Gateway + Lambda as a proxy, never had these problems again. I just monitor the 4xx and 5xx errors and they are almost zero now.
It is a lot cheaper than a "proxy as a service".