it is exiting after the first event and starting the loop over, by the time the first watch is removed and the second added, the events have already transpired. You can try:
inotifywait -q -m -r . | while read CHANGE; do
case "$CHANGE" in
*)echo $CHANGE;;
esac
done
the -m will continue monitoring after the first event