Market making usually ends up eating arbitrage opportunities in the end, and we've seen this happen in the liquid digital asset perpetual futures markets.
I'll explain:
For a given arbitrage, there's a level of reward and a level of cost to trade into it. When that ratio is extremely large you get taker only opportunities. This usually only happens in really unsophisticated markets, or with extreme latency requirements.
We are far away from the taker only arbitrages that used to exist except for maybe with some niche DEX/DEX or CEX/DEX arbitrages that exist, but even then most players have gotten smarter now.
Nowadays, most players will run maker/taker where you make on the illiquid leg and then take out on the liquid leg. This is an effective way to reduce costs, and you can still capture a lot of the profits. The only reason you would use the taker/taker quoter then is if the opportunities are extremely short lived (this type of trade eventually becomes a latency fight).
Now, the reason I say that market making eventually captures arbitrages is that when you quote around a fair value you are really saying I want to quote around where I think the market will be in the future and not where it is currently - this prevents you getting picked off by savy traders.
If I am quoting in a crappy exchange and it is far from Binance, then I will probably have some feature along the lines of basis to Binance and that will produce a forecast which says that the price on the crappy exchange will go towards Binance. This or I will simply quote around some global fair value which is volume weighted and hence will end up looking a lot like quoting around Binance (and also some Okex/Bybit).
Quoting around Binance on a crappy exchange is basically the same as running a maker/maker arbitrage strategy since you will be buying when it is below Binance and selling when above Binance (by using the Binance price your quotes will be aggressive in the respective directions when this misalignment occurs).
If you add a taking algorithm into your market maker which usually will take the form of some internal quotes you don't show the market and then send out taker orders when they cross the market, then if you do this, you will end up doing taker/taker arbitrages (or taker/maker depending on your hedge leg).
Your market maker on Binance will hedge the position because it will have an awareness of global inventory, and as such you will make (or if urgency requires it in your system - take) out of the position. The end result is that if you quote on two exchanges, and one is misaligned, then your forecast will pull you into quoting in such a way that you end up capturing arbitrages anyways.
Market making both legs is the most cost effective way to trade such things and it also allows you to combine the arbitrage view of where price is going with other features (such as overall price momentum/reversal). As such, more edge than just the arbitrage can be captured as many exchanges with arbitrages provide for a great way to dump toxic flow and pick up inventory in the direction you want it.
All of this means that as a market matures, market makers will eventually take over the role of keeping markets in line. On the low latency front they typically will have better latency tech and their hitting machines (taker systems) will be faster than a purely taker arbitrage focused shop on average, and for making into the opportunity, full maker using great quoting logic and additional market making alphas will crush an arbitrage only shop.
This is what we've seen happen. Most of the arbitrages now are only on niche DEXs / CEXs or have operational challenges (arbitraging Turkish crypto exchanges requires you to transfer Lyra internationally which is hard). Market makers eat the arbs in the end.
If you enjoyed reading, I have many articles on the topic of arbitrage on my blog www dot algos dot org.