リストの n 番目の要素を置き換えるような関数はありますか?
&optional な引数で、上書きと挿入を切り替えることができると嬉しいです。

(setq test '(A B C D E))
(func test 3 X)
=> (A B C X E)
(func test 3 X t)
=> (A B C X D E)

みたいなものがあったら嬉しいのですが、標準関数でこれと同じようなものはありますか?

自分でやると
(append (reverse (nthcdr (- (length lst) n ) (reverse lst)))
X
(nthcdr n lst))
みたいになってしまうのです。