You need something like CryptoDL: deep learning over homomorphic encryption, that would let the photos stay encrypted in the cloud, but still allow DL computations to be run.
It does work, but it's not nearly as seamless as Google's cloud implementation. I have many tens of thousands of photos in my Apple Photos library and I think it takes over a month to process everything if I start from scratch on a new computer. Somehow it seems much faster on the phone, and I'm not sure if that's because the processing is better hidden from me, it's much more efficient on the custom chip, or maybe a bit of both.
The later, a bit of both. It’s also probable that your phone is turned on and plugged in more often than your computer (especially for laptops).
It doesn't matter how clever you are: if you disallow processing the photos on the server, then any index you have on the client that is cached will be invalidated by an algorithm update, and there is no way to rebuild the index without downloading all the photos once again.
I'm not talking about federated learning, that's a different problem. Let's say we solved that problem using on-device learning and differential privacy. The problem still remains that retrained/updated models on devices require the photos to be processed locally again.
So if for example, you can now detect "hugs" in photos, and I search for "photos of my me hugging my daughter", Google Photos gives me what I want, and your local-only model means I have to wait a long time to redownload and reindex my entire collection. It's a huge user problem.
A workable solution to this problem has to somehow entail homomorphic encryption, if you somehow want to keep the photos encrypted on the server.
But it certainly works on large libraries because it shows me recent photos mixed with cats that died years ago.