This is what I would like to see ofcom do.
Anything below 90% of utilisation of IPv4 added to pool ran by ofcom (below 96% if IPv6 not rolled out on network to force a business case for IPv6) , they can redistribute to isp's that need them.
That don't work, for lots of reasons.
Firstly, because of the huge fragmentation it would cause to route announcements. Blocks can only be split into half, and half again, etc. The original ISP who was announcing one large block will have to start announcing many fragments, as well as the recipient.
Secondly, the ISP is likely to have used parts of the block across the whole range. They would be forced to renumber everything into more contiguous blocks. This would involve things like all leased line customers having to change their assignments.
Thirdly, it just isn't going to work contractually, or in accordance with RIR policies.
And finally, the amount freed will be so small as not to be worth the effort; it will very quickly be given out, and then you're back to square one.
Require IPv6 to be running to allow a request for IPv4 allocation.
That policy kind-of did exist at RIPE for a while. However it was pointless and I believe was dropped. All you had to do was request an IPv6 block. Even if you were forced to announce it via BGP, that doesn't mean you're using it for anything of value. Maybe you just make your ISP's home page available by IPv6, and nothing else.