I agree with you that extensions should, as far as possible, be in a loadable package.
However, some features can't be built in pure APL. Either because the underlying functionality simply isn't there, or because an APL-based implementation would be too slow.
Let's take a simple example: a timer facility. I want to be able to have an operator that evaluates an _expression_, giving me the time it did to run that. Such a function is hard to impossible to write correctly in standard APL since all you have is the ⎕TS variable, which you cannot reliably convert to a timestamp (because of leap seconds and DST. The days-in-month is also a problem, but can at least be managed with lots of superfluous code).
Hence, an extension is needed. In the case of GNU APL, that extension is accessed through FIO∆gettimeofday. This extension can then be used to build the necessary functionality to do timers, as well as plenty of other things.
Now, if you don't want to use these features, you don't have to touch the ⎕FIO functions at all, and I really see no benefit in having a separate version of GNU APL that does not include it.
Now, personally I'd love to see the ability go outside of ⎕AV when defining functions, but that one is a bit more controversial. :-)
Regards,
Elias