In my experience most apps put the date on all messages, except where there is a continuous exchange of messages where they reduce clutter by not putting this on every message - but if there is a gap of a few minutes the next one will get the date again. I can confirm that's how Textra, QKSMS and Samsung Messages work (I wasn't going to enable Google Messages so that I can check that one, or give Signal SMS access to check). If you really want the date on every single message then there may be an app out there that does this, but I can't say which (for most people that would not be desirable).
As for full date vs "Today", "Monday" etc, I can tell you that Textra is showing messages I received yesterday as "Tuesday, 3 Oct, 10:09" (I've not received any SMS today - I get a lot more WhatsApp than SMS these days). Again, there may be one that includes the year for messages in the current calendar year, but I didn't note this when checking the other apps (and it's a faff changing between apps these days because you have to change default app each time).
I might add that none of this is anything to do with Android 13: this behaviour has been the same for some years, and a third party app doesn't change with the Android version (the manufacturer may make changes to their app when they change major version, but I don't use manufacturer apps anyway).