Power Query creates a set of instructions on how to process a table. The problem is that it doesn't load the entire table before completing the instructions. For small tables, this doesn't matter. But if you have a table of 10 m rows and you set an instruction "keep the latest date", but Power Query processes 1m rows at a time, then chances are it will not keep the latest date. The latest date may be buried in rows between 1m and 10m. What Table Buffer does is force Power Query to load all of the table into memory first before completing the next step, hence eliminates this issue. Normally it is more efficient not to load the entire table first, but in some cases, like this one, it can be important.
Now that I have said that, I am not 100% if Table.Group actually has this problem - I suspect not. The way I did it in my article was to sort the column and then keep the latest date. This approach does have the problem that can be solved by Table.Buffer. I suspect that Table.Group doesn't encounter this problem, and probably gives the correct answer without Table.Buffer