People have a ton of opinions on merge commits but they stem from very few real issues: The log UI is bad, bisect handles merges badly. That's basically the crux of it. If you "hid" the railroad tracks as any higher level solution does then most of the problem goes away. Unsurprisingly the issue is that investment on this path disappeared when the rebase people won, and now we're stuck with the least capable merge tool that git has as the way that everyone does everything. We kneecapped git, and it was us that did it to ourselves.
Edit: and rerere still is no where near as capable as merge.