In 2021, what are the downsides of using XeTeX (or LuaTeX), as opposed to pdfTeX? There is a similar question here but the answers are mostly old. Has the situation improved since, with regards to Microtype for instance?
Let me give a biased answer to the question in the title with some reference to the other questions in the body of your post.
XeTeX is currently unmaintained or has an inactive maintainer which is functionally equivalent. Work on XeTeX was originally started by Jonathan Kew at SIL with contributions from Khaled Hosny. Jonathan has since moved on from SIL and no longer contributes. Khaled's interests also seem to have shifted towards LuaTeX with a custom Lua interface for HarfBuzz to bring complex scripts to LuaTeX. For some more background and a better overview see A.Reutenauer, “The state of XeTeX”, TUGboat, Volume 40 (2019), No. 2.
The current lack of maintenance means that XeTeX has some unfixed bugs. Some of them affect mathematics typesetting to an extent where I personally think, that XeTeX is no longer suitable for math typesetting. The bugs are a bit subtle, so you have to judge for yourself. This is the one I consider the most severe: https://sourceforge.net/p/xetex/bugs/87/
Microtypography in XeTeX is limited to protrusion. For expansion, tracking, kerning, and spacing there is simply no backend code. But then again, microtypography is usually not super important. In fact, Hans Hagen, the lead developer of LuaTeX and ConTeXt once said: “I hardly use expansion myself”.
XeTeX has a very funky way of producing PDF. While LuaTeX and pdfTeX directly output PDF and TeX outputs DVI by default, XeTeX does neither. Since XeTeX is derived from TeX it doesn't include backend code for PDF output, but because OpenType fonts cannot be represented in DVI, it invented its own format “extended DVI” (XDV). When you run XeTeX you will still get PDF output, but that is because as part of the run XeTeX feeds the intermediate XDV into
xdvipdfmxto produce PDF.
xdvipdfmxprogram has a few quirks of its own. It is actually capable of processing a few PostScript specials, which means that you can use PSTricks with XeTeX. On the other hand, this means that it needs its own driver code for color and image placement. These drivers are usually very complex and require a deep understanding of the file formats. Because the user and developer base for XeTeX is much smaller than for pdfTeX some of those drivers are of very low quality, in particular the PGF/TikZ driver. Using PGF/TikZ with XeTeX is not recommended.
Academic journals that accept LaTeX usually only accept pdfTeX-compatible documents. I'd say this is the main reason why people do not use XeTeX (or LuaTeX for that matter).
It used to be the case that XeTeX was the only TeX engine with HarfBuzz font shaping which was a big advantage for anyone having to typeset complex scripts like Arabic or CJK (Chinese, Japanese, Korean). In the recent past LuaTeX has also gained support for HarfBuzz under the name LuaHBTeX, so this advantage is now gone. However, there is still some macro code written explicitly for XeTeX to support complex scripts. I don't know what the progress in porting this code to LuaTeX is, but I think XeTeX usage might decline in the future.
2+1 This is a very useful answer. The one big distinction between XeTeX and LuaTeX is the
\XeTeXinterchartoksmechanism for which there is no existing analogue in LuaTeX: Is there a LuaTeX analogue to XeTeXinterchartoks?. Has anything changed on this front? Apr 16, 2021 at 19:05
@AlanMunn True, the interchartoks mechanism is not supported by LuaTeX, but more often than not it's possible to construct an even better mechanism using the existing callbacks. However, the lack of interchartoks is one of the reasons why e.g. xeCJK has not been ported to LuaTeX. Apr 16, 2021 at 19:07
So what are the options left to use OTF/TTF? Oct 28, 2021 at 18:51
1@vitaminace33 You can use LuaTeX with the source almost unmodified. Alternatively you can use
otftotfmto convert OTF to traditional TeX fonts for use with pdfTeX. The procedure is described in the appendix of the book LaTeX and friends. None of this will work if you want to submit to a journal, though. Oct 28, 2021 at 18:56
microtypefeatures are available for the different engines, see the doc, cited here