Is unescaping of \; in foreach() intentional or not?

foreach is expanding the list into elements exactly as any other list expansion does, and then iterating over those elements. What is wrong?