I'd argue we should just make @inline(always) open|public|package always infer @inlinable instead of requiring people to write it out. In general, we require explicitly writing things out that are knowable to the compiler only when it has some correctness benefit for the reader but in this case I fail to see it--there is no alternative way this could work and it is plainly obvious (much more so, for example, than implicit Hashable constraints that we infer sometimes).
On the one hand, this seems reasonable given the stated motivation; but on the other, it seems like it would be an incredibly annoying diagnostic to deal with since the "obvious" workaround is that I'd have to open-code how much inlining I want and then, for the rest of it, write a separate non-@inline(always) function that copies the implementation body of one or the other? (Or, I guess, assign one of the functions to a value and then call it, but that also doesn't feel good as a diagnostic-silencing tactic.)