Using an associative array:
watermark=~/Dropbox/Business/mihalko_logo_bw.png
shopt -s nocasematch
declare -A dirs
for f; do
[[ $f =~ .*\.(jpe?g|png)$ ]] || continue
d="${f%/*}/wm_$(date +%Y_%m_%d)"
mkdir -p "$d"
dirs["$d"]="$d"
target="$d/${f##*/}"
size=$(/usr/local/bin/identify -format '%[fx:w/4,279]' "$f")
/usr/local/bin/composite -dissolve 10% -gravity SouthEast\
\( "$watermark" -geometry $size \) "$f" -quality 100 "$target"
rm "$f"
done
for d in "${dirs[@]}"; do
~/imageoptim-cli/bin/imageOptim --jpeg-mini --image-alpha --quit --directory "$d"
done