I just learnt about insertAdjacentHTML & last variable return of arrow functions. (not using widely due to compatibility)
Also, you're absolutely right about XSS & Button. I thought innerText only removing text, keeping the <li></li> :)
So, learnt some new stuff. Thank you!
In your code, the <ol> initially outputs "undefined". So we need to change it to o=b(x,"ol","") there.
Final code: a=document;b=(d,t,v)=>(d.append(d=a.createElement(t)),d.innerText=v,d);i=b(x=a.body,"input");b(x,"button","+").onclick=_=>b(o,"li",i.value).onclick=(e)=>e.target.style.textDecoration="line-through";o=b(x,"ol","");b(x,"button","X").onclick=_=>o.innerText=""