The fact that for ((), @a) calls it once means you're relying on internal implementation. Whether you call it bug or undefined behaviour doesn't matter.
In reply to Re^13: Getting for() to accept a tied array in one statement
by ikegami
in thread Getting for() to accept a tied array in one statement
by perlancar
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |