Home Computers were an extension of the Dartmouth BASIC experiment going beyond the academic curriculum to teach programming to the general population.
The ZX-80 and ZX-81 machines have amazing manuals that are a big part of the fun when you bought the device, learning to program was what it was about in addition to introducing you to the commercial software you could get. The type-in's in magazines fueled this educational model and all that fun learning started the IT careers of many Today.
BASIC gets a lot of flack for encouraging inefficient design but similar issues emerge in any high level language, so I think it's more about how the programmer was taught.
The ZX-80 and other small footprint machines like the 4K TRS-80 and 5K VIC-20 encouraged more effective programming and solution building than the larger footprint machines like the Apple II and Commodore 64.
Learning to program on the C64 with 39K free to BASIC resulted in sprawling spaghetti code, not the BASIC language.
1K ZX80/81 BASIC programs make that pretty clear, ditto when comparing the 4K BASIC programs for other small footprint machines to larger programs, even on the same machine with expanded memory. This relationship even holds true with machine language assembly programs.
I remember reading a magazine editorial lamenting expanding the TRS-80 from 4K to 16K for the reason we no longer had to write efficient programs with 16K of RAM.
I think if you got a ZX-80/81 or Timex Sinclair without the RAM pack first, you had the opportunity for an even better learning experience.
Biggest problem with the C64 was the BASIC was far too primitive considering the advanced capabilities of the machine. To do anything decent you had to POKE memory registers - even to do simple things like change the border colour. It did encourage use of machine code, but really it should have shipped with a better Microsoft BASIC like the MSX machines had. Also the C64 basic didn't have the features for proper structured programming, unlike BBC BASIC.
ZX81 basic was perfectly tailored for the capabilities of the machine, as was Spectrum basic. Of course you needed machine code to do really decent stuff, but a surprising number of early games and applications were written in BASIC, or partly in BASIC.