"Presumably one would want the one that takes the same amount of length off each arc segment. I think that would not be just calculable"
You can roll up to it with pretty good accuracy. I'm sure someone good at math could do it better than me. here's a proof of concept
from pyrx_imp import Ap, Db, Ed, Ge, Gi, Gs, Rx
import traceback
def PyRxCmd_doit():
try:
db = Db.curDb()
#dist
es , dist = Ed.Editor.getDist("\nDistance: ")
if es != Ed.PromptStatus.eOk:
raise RuntimeError("nDistance Error {}: ".format(es))
#entsel
es, id, epnt = Ed.Editor.entSel("\nPick a Polyline: ", Db.Polyline.desc())
if es != Ed.PromptStatus.eOk:
raise RuntimeError("Entsel Error! {}: ".format(es))
pl = Db.Polyline(id,Db.OpenMode.kForWrite)
#get param at pick
epnt = pl.getClosestPointTo(epnt)
nextParam = float(int(pl.getParamAtPoint(epnt))) +1
distAtVertex = pl.getDistAtParam(nextParam)
#compute split points
d = 0.0
pnt1 = Ge.Point3d()
pnt2 = Ge.Point3d()
for i in range(1,15):
tol = 10 ** -i
while(pnt1.distanceTo(pnt2) < dist - (tol*2)):
d += tol
pnt1 = pl.getPointAtDist(distAtVertex-d)
pnt2 = pl.getPointAtDist(distAtVertex+d)
#check
print(pnt1.distanceTo(pnt2))
#split the curves
newplines = []
plines = pl.getSplitCurves([pnt1])
newplines.append(plines[0])
pline = Db.Polyline([pnt1,pnt2])
newplines.append(pline)
plines = pl.getSplitCurves([pnt2])
newplines.append(plines[len(plines)-1])
#color
for item in newplines:
item.setColorIndex(1)
#join the new segment
pe = Db.JoinEntityPE(newplines[0].queryX(Db.JoinEntityPE.desc()))
pe.joinEntities(newplines[0], newplines[1:])
db.addToCurrentspace(newplines[0])
#pl.erase()
except Exception as err:
traceback.print_exception(err)

Python for AutoCAD, Python wrappers for ARX https://github.com/CEXT-Dan/PyRx