Each of those can use a function which creates a temporary polyline from the list of points. Then it runs the region command to convert the polyline into a region. Then run the UNION/SUBTRACT/INTERSECT commands (this is the only thing which differs between these functions). Then explode the resulting region. Run "PEdit" "Multiple" <selection> "Yes" "Join" "" "" ... to convert them back into a poliline (or more depending on the shape like in that union example). Read their entget data and extract only the vector points. Delete the temporary objects and return the points you obtained from them.