"Presumably only a UK phone can generate a CLI number itself? BT should not allow a CLI to be different from its allocated number unless pre-registered."
A phone (handset etc) doesn't know its own directory number. It's connected to a line card at the exchange or local concentrator which has an equipment number. The software on the switch translates between equipment number and directory number. So presumably to spoof a CLI you'd need to access the switch e.g. by using a particular command sequence, but I'm not a BT technician.