I have posted the following on stackoverflow:
http://stackoverflow.com/questions/31433605/how-to-eliminate-time-spent-in-jit-tailcall-for-functions-that-are-genuinely-non
Summary: I am calling a .NET assembly (F# 4.0) from a dynamically generated assembly (FSCS 3.1) and it is passing a custom value type (struct) over the assembly boundary. This causes a set of unnecessary calls to JIT_TailCall that degrade performance materially.