Inspired by Peter Naulls' comment:
What counts as a large program ?
TurtleChalk's BBC BASIC !RunImage is now up to 627 K but I guess that must still be small as it can still function fine on an A5000, and the entire package still squashes onto a single floppy disc. It's taken three years of "free time" development to get to this size but I've yet to hit any barrier due to the inherent nature of BASIC: I guess eventually I'll hit the 64000 lines of code limitation but probably not for another three years !
The EVAL function is my favourite - and string handling superb but I'm not trying to convert anyone to BASIC: Most folks become proficient in one or two languages and, unless major limitations start to prevent them doing what they want to do, are going to stick with what they know regardless of what thers say.
One point: BBC BASIC is surely more acurately described as a late 70's language including, as it does, several ideas from PASCAL. It was quite an advance, in its day, on the BASICs that went before.