Two cases should be distinguished (using an example, in which Address is embedded within Employee):
a) where the owning instance of an embddable is also in the query result :
(1) select e, e.address from Employee e
(2) select e.address, e from Employee e
b) where the owning instance of an embddable is not in the query result:
(3) select e.address from Employee e
In the above 3 queries, the result of selection 'e.address' are non-managed embeddable object that can not be further updated. The result of selection 'e' contains embeddable address that are managed and are update-able.
If DataCache/QueryCache are enable, non-managed embeddables are not cached in DataCache but cached in QueryCache.