Even if the commit message is concise, there is a difference between what the patch does on a technical level and what the end user will see as a result.
IMO the solution is to link each commit to an issue or a ticket - some high-level description of the feature the commit implements - but there still has to be someone who makes the effort of making sure each commit is linked to a ticket and who nags the devs when they forget to do so…