As per the Google Cloud Documentation
Ephemeral external IP address are released from a resource if you delete the resource. For VM instances, if you stop the instance, the IP address is also released. Once you restart the instance, it is assigned a new ephemeral external IP address.
I just did try it with one of my GCloud compute and I see that the ephemeral IP did not change.
I used below command
gcloud compute instances stop test-compute-1 --zone='us-east4-a' gcloud compute instances start test-compute-1 --zone='us-east4-a'
Is it a bug or feature?
It reassigns the ephemeral IP if it was associated with compute and available in IP pool.
Not sure what ephemeral means on GCloud though the definition is similar as per the documentation.