Learning on my own meant I avoided the trap of only learning part of how to complete the project (because I had to do all the parts) but I only learnt enough to complete the project I was working on. I didn't learn any data structures or algorithms fundamentals until I started playing with C (in fact, my algorithms knowledge is still rubbish, and I've never implemented a hash map, I just use tries), and there's so much I pick up on just from listening to my CS-qualified colleagues in the office.
To make guided project-based learning achieve this, the projects have to be so finely structured that they end up forming a traditional curriculum anyway.