CAVEAT: When you run "$octets = encode("utf8", $string)", then $octets might not be equal to $string. Though
both contain the same data, the UTF8 flag for $octets is always off. When you encode anything, the UTF8 flag
on the result is always off, even when it contains a completely valid utf8 string. See "The UTF8 flag" below.

Yes, I understand that result of encode("utf8", ... ) is a byte string with UTF-8 flag off.
But that does not answer the question in my post.
In my example, both poc1.pl and poc2.pl print strings with UTF-8 on, with length <> bytes::length, but those strings behave differently. Why?