As they say in the article, your solution doesn’t work for even moderately complex layouts. If you want to add a space between elements, margin works wonderfully until those elements can wrap. Gap was introduced because regardless of what happens, there will always be a space between elements. Your solution fails to address the situation gap was introduced to fill.
With modern CSS you can typically handle separators with a single selector and property like:
They touch on this in the article but I feel like they're overselling the frequency of edge cases.