Commodore's software story was indeed a mess, going all the way back to the PET. The BASIC in question was essentially a development snapshot of Microsoft BASIC on the 6502. It's the same code base that would go on to become Applesoft about a year later. But where Apple was able to drag MS along via comparison to the (less featureful but FAR more elegant) Integer BASIC interpreter, Commodore just took what they got and shipped it. Then patched it as needed as they kept shipping new hardware.
You'd think this would have hurt them more than it did. But in fact the idea of an "Operating System" had limited real utility in devices this small. There just wasn't enough space to do much useful for the user, and all "real" apps and games ended up rolling their own versions of everything anyway.
The C64's primary interface to the software developer was a hardware interface. And as it happened that mostly worked just great (disk I/O excepted, of course).