Possibly like this.
But it's not bulletproof. It just changes the closer end of the newly created pline to the corresponding selected point.
So the situations as attached are trouble. Though points could shorten plines, if it's beyond the last segment, it's trouble.
(vl-load-com)
(defun c:Offselpoints ( / e s i p a d)
(if (and (setq e (entsel "\nSelect object to offset: "))
(princ "\nSelect points, ")
(setq s (ssget '((0 . "POINT"))))
(not (command "_.offset" "_t"))
)
(repeat (setq i (sslength s))
(command e "_non" (trans (setq p (cdr (assoc 10 (entget (ssname s (setq i (1- i))))))) 0 1))
(setq a (entlast) d (entget a))
(entmod (subst (cons 10 p) (assoc 10 (if (< (distance (vlax-curve-getstartpoint a) p) (distance (vlax-curve-getendpoint a) p)) d (reverse d))) d))))
(command "")
(princ)
)