I honestly think the way for WGT to fix this is to allow balls to only run out at the end of the current match. They probably won't do this because a ball can be hit in a pond and lost but it would be the most simple way to avoid the ball running out of 'life' during a round. I would even accept the fact that you get stuck with a free ball if you hit your last ball into a pond, OB, etc., I view that as my fault.
I do hate it when you are trying to use up the last of a ball type and then you aren't sure if it will make it through a round. Allowing the ball to 'finish' the round would fix that.