When using a non-default IFS (a default IFS would trim them), a single empty trailing field is ignored for read -a.
IFS=: read -rd '' -a arr < <(printf %s ':foo:bar:'); printf '<%s> '
"${arr[@]}"; echo
<> <foo> <bar>
I would expect the output to be:
<> <foo> <bar> <>
