Suppose a smart contract external function uses very much gas, but refunds (with
.transfer()) the used gas to the caller.
Question: Can it be called with a small amount of gas despite it uses much?
Moreover, can such a function be called by a user having zero on his account? (The gas is refunded to him, so I am unsure.)