It's frequently found incorrect, both older and younger than the actual age of the document. It's a bit of a relic from back in ye olden days when websites were static .htm files in a folder, which is so rarely the case today.
It doesn't help it's also got overloaded uses via If-Modified-Since -style conditional requests.
But you are right that If-Modified-Since forces it to be a date for the complete document rather than the content, which might not be as useful to normal users for dynamic pages.
Not generally useful to show this by default, because nowadays most pages are dynamically generated and although it's technically easy to implement, the last modified header is typically not set to $now.
But Browsers are bad HTTP clients. Think about bad user experience with file uploads (no built in progress report!?), HTTP auth (not showing status, no logout etc.)