Hi Jack. The only thing that _should_ turn something into an entity is how you define that thing. That isn’t very helpful :-).
Crudely, ask yourself “if something I know about this thing changed, would it be the same thing” and “if everybody had this thing and one person changed it, should everybody change it”. Entities are valid if the answer to both of those questions is ‘yes’.
Typically value objects are colours, numbers, addresses (or at least parts of addresses).
An example, if my shirt is red and I dye it to be blue then have I changed the _colour_ red or have I simply chosen a different colour? Obviously I have chosen a different colour; my socks that were red are still red, i.e. I haven’t changed _red_, red is still red. But note it is the same shirt. The colour is a value object, the shirt is an entity, because its identity is the same over time but its value isn’t.
Now for the other complicating factor…
Imagine I run a warehouse where I sell shirts - when you order 30 red shirts from me do I really care _which_ red shirts they are? Do I find it useful to identify each shirt? No, of course not. In this case the shirt is a value object.
In general, people err on making too many entities. I generally recommend everything is a value object until you can justify the benefit of distinguishing different instances of the same thing.
As ever, it depends on what is useful for the business.
So no, email addresses are still value objects. For the uniqueness I tend to be pragmatic and stick a unique index in the DB and let the error propagate up; it isn't that likely to happen and the user can always try again if it does (better things for the business to spend my coding time on). For the addresses, there is no technical reason why you can’t just send through the value object to be deleted. However, if you wanted to name them then sure, why not. “home address’ or even “address 1”, “address 2” etc. But the address is still technically a value object :-). What’s the difference between a value object with an identity and an entity? Nothing that can be expressed in code but a whole bunch of things from a modelling perspective.