The OptimizedByteArray may have been beneficial on 32bit archs, are less
likely so on 64bit archs, and the possible gains are not worth the
extra complexity.
The OptimizedByteArray stores each path component as a separate
QByteArray, shared over all directories. As each of these references
amounts to a d-pointer, the minimal cost is 4/8 bytes (fully amortized),
the maximum cost is 4/8 bytes + 16/24 bytes (QByteArray overhead) +
strlen(component) + 1 + padding/alignment + libc alloc overhead (unique
component name).
I.e. for each watched directory where the average path component length
it is a definite loss, for longer average length it depends on how often
a long component is shared.
As each component is permanently cached in a QSet this also leaks
memory.