DApp low-level or high-level calls among contracts

Is it true that the reason a low-level call for transferFrom and transfer is used is a bool value of whether the call is successful or not can be returned? I asked this question in this post before.

Does that also imply whenever a bool value is required, a low-level call can be implemented to ensure a bool value can be returned no matter if the function in the called contract returns a bool or not?

I think this is the same logic. Any other concerns?