Not sure if there's a way to do this by inserting/updating records into the feature class (probably requires the SDE C or Java API), but if it's acceptable to truncate the feature class and re-create the features by copying from the non-spatial view, then you can do so either in ModelBuilder or arcpy by chaining together the 'Delete Features', 'Make XY Event Layer' and 'Feature Class to Feature Class' tools (all in the Data Management toolbox). If doing so in python, make sure the gp.overwriteoutput = true (or arcpy equivalent) or it will fail since the feature class already exists. ModelBuilder will give a warning but will still complete.
A couple of recommendations when doing this:
1. Get it running in ModelBuilder first and then export to python
2. Do NOT use 'CopyFeatures_Management', as that takes many many times longer in python than it does in ModelBuilder (depending on the number of features of course, but it is extremely slow and does not scale well at all).
Here's an excerpt of the AGS v9.3.1/python v2.5 version that reprojects the feature class after creating a temp feature class:
# Import system modules
import sys, string, os, arcgisscripting
# Create the Geoprocessor object
gp = arcgisscripting.create()
installInfo = gp.GetInstallInfo("server .net")
ARCGIS_INSTALL_DIR = installInfo["InstallDir"]
# Load required toolboxes...
gp.AddToolbox(ARCGIS_INSTALL_DIR + "/ArcToolbox/Toolboxes/Data Management Tools.tbx")
gp.AddToolbox(ARCGIS_INSTALL_DIR + "/ArcToolbox/Toolboxes/Conversion Tools.tbx")
gp.overwriteoutput = 1
# Local variables...
sdeConn = "Database Connections/myDbConn.sde"
inMemXYLyr = "sde.dbo.Temp_Layer"
XYTblOrView = sdeConn + "/sde.dbo.TableName" # assuming table is in SDE DB; your mileage may vary
tmpFc = "TEMP_FEATURE_CLASS"
tmpFcFull = sdeConn + "/sde.DBO." + TmpFc
targetFc = sdeConn + "/sde.DBO.MY_FEATURE_CLASS"
# Delete the features first
print "Deleting features in Wells Feature Class..."
# Process: Make XY Event Layer...
print "Making XY Event layer..."
gp.MakeXYEventLayer_management(XYTblOrView, "longitude", "latitude", inMemXYLyr, "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]];IsHighPrecision")
# Process: Feature Class to Feature Class...
print "Generating temp feature class from in-memory XY table..."
gp.FeatureClassToFeatureClass_conversion(inMemXYLyr, sdeConn, tmpFc, "", ..., "")
# Process: Project...
print "Projecting feature class to Web Mercator..."
gp.Project_management(tmpFcFull, targetFc, "PROJCS ... ")