Respectfully i dont think you are viewing this rationally and need to take a step back.
Some these things are terrible choices but some of these are just weird choices that aren't neccesarily terrible or a minor inconvinence at most.
E.g. no source control - obviously that is terrible. But its also trivial to rectify. You could have fixed that in less time it took to write this post.
Otoh "it runs on php" - i know php aint cool anymore, but sheesh not being cool has no bearing on how maintainable something is.
> "it doesn't use composer or any dependency management. It's all require_once."
A weird choice, and one that certainly a bit messy, but hardly the end of the world in and of itself.
>it doesn't use any framework
So?
What really matters is if its a mess of spaghetti code. You can do that with or without a framework.
> no caching ( but there is memcached but only used for sessions ...)
Is performance unacceptable? If no, then then sounds like the right choice (premature optimization)...
> the database structure is the same mess, no migrations, etc... When adding a column, because of the volume of data, they add a new table with a join.
Not ideal... but also pretty minor.
Anyways, my point is that what you're describing is definitely unideal, but on the scale of legacy nightmeres seems not that bad.