Incrementar uma variável aciona EXIT na festança 4, mas não na festança 3

Considere este script de exemplo (exemplar):

#!/bin/bash -e
errorExit() {
    echo "" >&2
    echo "ERROR (${var_scriptfilename}):" >&2
    echo "An unhandled error occurred." >&2
    intentionalExit 1
}
intentionalExit () {
    trap - EXIT # Unregister the EXIT trap
    exit $1
}
trap errorExit EXIT # Trap script errors
var_scriptfilename="$(basename "$0")"
# ==== START OF TEST ====
var_counter=0
((var_counter++))
echo "var_counter is $var_counter" >&2
# ===== END OF TEST =====
intentionalExit 0

Se eu executá-lo na festança de Cygwin, ele produz a saída pretendida:

var_counter is 1

No entanto, se eu executá-lo na minha caixa Debian Squeeze, que é o destino pretendido, acabo na armadilha EXIT:

ERROR (test.increment.sh):
An unhandled error occurred.

...Por que é que

Se eu remover a opção -e, ela funcionará conforme o esperado nos dois sistemas, mas quero mantê-la em uso, obviament

A variante "universal" um pouco mais complicada,var_counter=$(($var_counter+1)), funciona com -e sendo definido nos dois shells, mas eu preferiria usar a primeira notação (ou algo parecido), pois ela se destaca claramente como uma operação de incremento ao ler o códig

bash --version na festa Cygwin diz:

GNU bash, version 3.2.51(24)-release (i686-pc-cygwin)
Copyright (C) 2007 Free Software Foundation, Inc.

No Debian, é:

GNU bash, Version 4.1.5(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.

Estou intrigado com o motivo de ser assim. Alguém sabe a causa desse comportamento?

Além disso, alguém sabe de uma maneira semelhante para incrementar uma variável no bash que eu poderia usar?

questionAnswers(1)

yourAnswerToTheQuestion