We use SQLite in lieu of large REST transfers when transferring large amounts of temporary data internally in our application between services. It means the structures are already in a format where you can work with them, etc. Once the file is in S3 you can use it with an unlimited number of worker processes, it's very easy to add new steps to a pipeline when you don't need to worry about extra impact on your database server.
We also use SQLite for read-only data caches (i.e. points of interest in a 3d model) and these are exposed via REST API. This saves database space as there are tons of models and we can just effectively store an unlimited number of SQLite databases in S3 or whatever storage mechanism we want.
I think for a situation where you prepare the document once and then read from it as much as you need, it's a really good option. I'm not sure I'd want to do something like what you've described where (I assume) the workload involves reads and writes by users.
Of course, you know your app and customers better, but consider this - an adversary can just write a script to update some data constantly (i.e. changing their password) and with enough threads you can lock the database for updates. You won't have that problem with a database server.