...decided on extrude, dissolving edges and moving old corners. Currently not producing coplanar ngons, will need to get my head around it later.
Select default cube, and in edit mode, run script.
from mathutils import Vector
context = bpy.context
obj = context.edit_object
me = obj.data
bm = bmesh.from_edit_mesh(me)
verts = [v for v in bm.verts]
faces = [f for f in bm.faces]
edges = [e for e in bm.edges]
# create new insets (could set return val give list of created faces]
[bmesh.ops.inset_region(bm, faces=[f], thickness=0.2) for f in faces]
verts = [v for e in edges for v in e.verts]
# dissolve original edges.
# move the corners
for v in verts:
n = len(v.link_edges)
v.select = True
v.co = sum([e.other_vert(v).co for e in v.link_edges], Vector()) / n
Notice the chamfers are too shallow (not on same plane), I've used the median point of the triangle of the corner. Thinking there could be cases where 3 planes in space (the chamfers) may not intersect at a single point. (Maybe hence the triangle corner of bevel) Will investigate later using some of the geom utils, intersecting pt with planes defined by chamfers, or someone may suggest something in comments.