Getting the file from database (added via code) is slower than getting
it from file system (adding it ghosted via Module) but how much?
How many % on average this is from a http request for example,
considering that the file is retrieved each time during a request?
It's cached by SharePoint's code first, then ASP.NET's runtime, then SQL Server's various caches, then probably whatever disk based caching you have, so forget about it.
Does SharePoint always get the file from the database?
Files servered in virtual directories (those starting with an underscore) generally are not from the database, though chances are they use artefacts stored in the database.
SharePoint can be architected to easily handle 10s of thousands RPS, and is built around scaling horizontally. If you see a slowdown through request volume, you simply throw hardware at it after configuring your software (SQL Server, Request Management, etc) properly.