The process goes as such:
from arcgis.geometry import SpatialReference
sr = SpatialReference(wkid=4326) # WGS 84
sedf = pd.DataFrame.spatial.from_df(df,geometry_column='geometry',sr=sr)
lyr = sedf.spatial.to_featurelayer('feat_layer_name', gis=gis) # works correctly
lyr = sedf.spatial.to_featurelayer(gis=gis,overwrite=True,service={'featureServiceId':'1234567890abcdefgh','layer':0}) # breaks projection
Seems like a bug. I'd rather not have to go back to the old method of updating feature layers as this should be the standard.
Oh yeah, it also keeps creating extra shapefiles and feature layers...
... and oh yeah, it also truncates the headers.