@johnpoz:
While I will be first to admit to the point of having to forget ipv4 when thinking about ipv6.. It really is a whole new ball game. But to me a ULA is not same as link local, link local does not route across L2 boundaries, while a ULA can.. ULA is more like ipv4 rfc1918 address. You can route it across your local private network all you want - but the addresses do not route across the global network.
And I will also admit I have not spent much time working/playing or even investigating ULA.. Will for sure take a look at the rfc linked too. How does the device determine that it should use its global vs its ULA address. I assume it could think well the dest address is global so use a global address, oh the address is ula so use my ula address would be my guess at it. But again will admit I have not investigated that sort of scenario. This points directly to your good statement of
"IPv4 network there is no source address selection mechanism"
I had not run into a scenario where you could just not use your global IPv6 address across the board.. Both for internal local networks and global access..
ULAs are used pretty much the same as RFC1918 addresses and, as you say, they're routeable but not to the Internet. One thing I spend a lot of time doing is using Wireshark to see exactly what's happening on the wire. When choosing between GUA and ULA, if you provide a ULA address, then that's what will be used. Basic routing rules etc. IPv4 and IPv6 link local addresses are similar in that they are confined to the local link (I guess that's why they're called "link local". ;) )
While I have experimented with IPv4 link local, the only use I've ever had for it is with my TP Link switch I mentioned in the other thread. I configured it with a static link local address (yeah, I know that violates the RFC) so that when I use the switch to monitor a circuit, it won't send out frames that might interfere with the network. The computer runs duplicate address detection when first connected to the switch and keeps quiet after that. So, I connect to the switch first and then connect the switch into the circuit. I also have TP Link's version of spanning tree turned off, for the same reason.