Actually, there are plenty more examples like this - Fox seems to alias some similar identifiers internally (mapping to the same internal id or byte code) and as a result you can use TYPEAHEAD wherever you are allowed to use TYPE, MEMORY where you are allowed to use MEMO and so on.
? typeahead("foo")
scatter name foo memory
I wouldn't consider this a bug since
valid Fox programs are interpreted
correctly. Nowhere does the doc say that Fox is required to raise some error on ill-formed programs.
The only potential problem is that a user could define a UDF named 'typeahead' and then they would find out that this UDF cannot be called using function notation because a function call to typeahead() compiles to the byte code for the type() function.
But this is only a problem for people who don't read documentation - 'typeahead' is a reserved word. In certain contexts it has a defined meaning (to wit, SET TYPEAHEAD etc.) and whatever Fox does in other contexts (== ill-formed programs) is implicitly correct, even if it formats your hard drive and sells your cat on eBay.