It still has value, but you realise it more after some real-world experience
Firstly, I think more people should look at doing the BCS Professional Graduate Diploma instead of a full-time honours degree course - it has the same academic standing (and qualifies you for doing a Master's afterwards), but you have the option of self-study as well as doing it through course providers. This allows you to pick up a stack of books, learn for yourself and sit the exams, spending £1k instead of £27k.
I left a (well-respected) uni Computing degree course because I wasn't happy with the quality of the teaching (e.g. near 300 students in one of the courses lectures so no one-on-one time realistically possible). I then worked my way up from tech support into programming, and I'm pretty certain that I've been passed over for a lot of the jobs I've applied for because I didn't tick that degree checkbox - perhaps half my applications, or something like that. Yes, I'm in a well-paid job, and I'm only just finishing up that above-mentioned PGD in IT over 10 years on, but at the same time it has sometimes made things harder.
People should bear in mind that during in-demand periods you can get a job with less experience - almost none during the dotcom boom, even - but when there's a crunch and more redundancies, then that missing degree may be a much bigger problem. Also, having come back later, some of what seemed irrelevant at the time made more sense, and I knew where i had gaps that were filled in. So yes, a degree prepares you for work (to some extent), but there are areas which you may not cover if you're just learning on the job.
You can write both good and awful code without any formal training. The formal training aims to give you a better understanding so you're less likely to (not that this always works as my recent interviewing of candidates for my employer showed). That said, I'd certainly take a bright enthusiast over a less bright and interested degree-holder, as the field moves fast enough that an interest in ongoing skill development is essential. What we could probably do with are more apprenticeships, where people study towards exams like the BCS's while working for a company, and get a balance between real-world experience and academic knowledge, while also earning a modest wage. Bring on the IT Apprenticeship!