Let's have a look at an autocomplete request for 'EC2Y 8DR'
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=EC2Y%208DR&key=YOUR_API_KEY
If you execute this request, you will see that suggestion 'London EC2Y 8DR, United Kingdom' has a type "postal_code" (place ID ChIJgYd44lUbdkgRUMGemVRu-1Q). So when you request details for this place ID you will get back information about a postal code itself which doesn't contain any street name.
https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJgYd44lUbdkgRUMGemVRu-1Q&key=YOUR_API_KEY
You can see the postal code in Map Maker:
http://www.google.com/mapmaker?gw=90&iwloc=0_0&dtab=history&cid=6123609427973947728
The workaround is the following:
When you request a place detail analyze the type. If the type is "postal_code" extract the latitude, longitude of the postal code and execute reverse geocoding to obtain the nearest street address.
In your example the postal code has coordinates 51.5202776,-0.09492260000000001. The reverse geocoding will return an address '331 Shakespeare Tower, London EC2Y 8DR, UK'.
Please look at the result in Geocoder tool:
https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D51.520278%252C-0.094923