[I wonder why C didn't adopt BCPL's convention for eliding semi-colons? ...]
[Presumably because it caused too many surprising behaviors...]
My guess is that it would have been more work in the parser, and therefore didn't fit with Unix "minimalism". ;)
It's not clear to me what surprising behaviors there would be. Javascript seems to do OK with optional semicolons - presumably its algorithm is similar to what BCPL used. (Or perhaps the surprising behaviors are trivial compared to the other surprises that Javascript springs on people.)