First, "citation needed", because you are making wild claims with no supporting evidence.
A select requires a SHARED lock, and that is done via a transaction. If you have multiple select statements that you want to ensure all read the same set of data, wrap them in a transaction. Also to reduce locking overhead.
What is the actual relevance of the lack of a "SQL server"? What do you mean by that? The SQLite engine does its thing just as any other RDBMS engine does, but not as a persistent external process. That has nothing to do with all of the italicized and scare-quoted phrases your imprecation is larded with.
And, on top of that, what relevance does your prescription have to the actual question at hand? You rail about something without explaining how it matters.
So, your closing remark is, on its face, incorrect, as it appears that no actual help was provided. Please stop.
In reply to Re^2: DBD::Sqlite queries slow - and gives wrong results