Como você sairia de uma função se uma condição fosse verdadeira sem matar todo o script, basta retornar para antes de chamar a função.
Exemplo
# Start script
Do scripty stuff here
Ok now lets call FUNCT
FUNCT
Here is A to come back to
function FUNCT {
if [ blah is false ]; then
exit the function and go up to A
else
keep running the function
fi
}
set -e
definiu no topo do seu script e seureturn 1
ou qualquer outro número além de 0, todo o seu script será encerrado.