One of the biggest cons I find are cold-starts. Meaning that there is some time required for any cloud provider to provision resources for your function and get it running. The more it is accessed, the less of a problem this is, but for a lot of people, half-a-second response times don't cut it.