Does it make sense for a non-pure/non-view external function to return any values at all? This is especially when this external function is likely going to be called off-chain.
Since they are likely to be called off-chain, whatever value is returned cannot really be returned to the off-chain caller. These functions in the contract are going to run some operations, perhaps updating some states, and then return some calculated values from the new state and also emit an event of that calculated value. When calling these functions off-chain, I could only rely on the event for that value. The returned value directly from the function is not going to be available to me.
Then, when making design decisions for an interface with external functions, should external non-pure/non-view functions even have any return values since they can't be accessed? Otherwise, in what cases should these external functions should and should not have return values?