Does Lambda allow for Reusability?

I am new to Lambda and serverless. My initial reaction was extreme excitement about every Lambda being self-contained. But I’m realizing that this encapsulation apparently comes with a drawback–unlike with a server app, I can’t see how to reuse code.

For instance, if I change my database, will I have to update the database specs in every lambda? And how about package versioning?

My understanding of how Async/Await works in a C# application is that when the program hits the ‘Await’ keyword it stops, returns the current thread to the thread pool, and Kodi nox waits for the awaited operation to finish. When the operation is done the program grabs a free thread out of the thread pool and continues executing the program.