In our case, we're using a GeoServer at a different host than GeoNode, so we would have to override and not use SITEURL, but it could definitely still be the default in settings.py.  The only purpose of PUBLIC_LOCATION for us is to use HTTP and not HTTPS.  Since SITEURL usually includes the 'http://' section, would have to be something like:

'LOCATION' : 'https://" + SITEURL + "/geoserver/',
'PUBLIC_LOCATION' :  'http://" + SITEURL + "/geoserver/',

But then SITEURL would need to be changed to not include http prefix, and I'm guessing that'd probably break lots of stuff elsewhere.