Hugo doesn't execute any server-side code at run-time though does it? I believe the content in that data directory is made available to the templates at compile time, but the actual deployed asset is still just static files.
Correct, but there's nothing stopping your from having a lambda function regenerating S3 content from Hugo periodically/by request.