The rationale for inlining the functions is that having them in the same translation unit may improve performance of hot loops. See discussion starting at this message:
https://github.com/bitcoin/bitcoin/pull/17786#issuecomment-575673666
This is a backport of core#17786, core#26609 and core#26545
Depends on D15789