Locally-generated ULAs meet a need, like RFC 1918, that the RIRs will never (and probably should never) meet -- cost-free and paperwork-free addresses. Local ULAs also have the benefit that it's easy to explain to customers why ISPs won't route them, which has been cited as a problem with central ULAs.
But locally-generated ULAs aren't ULAs, they're NLAs, so, what's the point of creating this giant address space for people to allocate from willy-nilly. If you want to define an RFC-1918 style /32 everyone can play in, go for it. You'll have all the same problems and solutions of RFC-1918. If you want to avoid such collisions as have been the problem with RFC-1918, then, you need an address registry, and, let's just accept that this isn't a bad thing any more in IPv6 and get the RIRs allocating such space in a reasonable fashion. I'm perfectly willing to have the RIRs delegate this space from a separate IPv6 block for that purpose, and, the RIRs are capable of doing this. They're already doing it for IPv4 based on 2002-3 and 2003-15.
There are a few issues with a registry for ULA address space: Cost: I find it hard to believe anybody will run a registry for ULA address space at no cost to the registrant. Elgibility: If the purpose of a registry is to keep ULAs globally unique what criteria need to be met to obtain ULA space. That cames back to my issue (with my clueful end-user hat on) of how an enduser with a small (or not so small) local network can statically assign ipv6 addresses to local devices. The requirement for that local ipv6 space is that it does not ovelap with any current or future globally routable ipv6 space. After all, some of the device on that local network will need global access and would be able to reach a global site that has the same address as the local site. Obviously, since this is non-routable, only locally significant, space I am not willing to pay for this space. Adi