I have made the occasional tweak to prevent performance degradation (I wrote most of the inlining code), for instance, we don't inline into functions containing eval. And I am aware inlining can affect performance in a number of ways:
1) good: it avoids function call overhead
2) good: it can reduce code complexity as it changes code from general to specific (allow propagation of constants, dead code removal, etc)
3) bad: it can increase the complexity of the function into which a call was inlined (potentially increasing JIT latency and cost by including code that possibly won't be run or preventing it altogether)
For this last, I just don't have any data as to what is good or bad for all the JS engines and rely on the engines doing a good job in the general case (or equally bad job as the case may be).
The compiler has traditionally tried to strike a balance between code size and performance but the compiler errors on code size. This has worked out pretty well as (a) application generally aren't performance sensitive and (b) it is usually a performance gain (c) what is good for code size doesn't change with each browser release.
That said, I will happily tweak the general inlining costing heuristic if someone can provide test cases where the results are uniformly or egregiously bad and have no objection to having a "performance" costing heuristic if someone wanted to experiment in that area for a particular engine.