IMHO, the C++ standard does not define restrictions for inlining. Inline functions are defined in section 7.1.2.2:
A function declaration with an inline specifier declares an inline function . The inline specifier indicates to the implementation that inline substitution of the function body at the point of call is to be preferred to the usual function call mechanism. An implementation is not required to perform this inline substitution at the point of call;
Compilers usually have some heuristics to decide if a function will be inlined or not. This balances the cost to perform an actual function call (push arguments on the stack, jump etc) with the effects of having a larger function (the most obvious drawback is an increased size of the resulting binary), but the concrete rules are left open for the compiler implementer.
If the book is not talking about a specific compiler, I see not reason why this statement is true in general. It may a rule of thumb, though.