こういう関数があります

const fn = (target) => {
if (!target) {
for (const item of getAll()) {
something(item)
}
} else {
something(target)
}
}

引数 target が指定されていたらそれを something 関数に渡します
指定されてなければ getAll で全部を取得した上で for 文で全部を something に渡します

引数があればそれを なければ全部を対象になにかの処理をするというものです

something 関数程度ならこれでいいのですが something が長くなってくると同じものを 2 箇所に書きたくないです
同じものを 2 回書きたくないなら関数にまとめてしまうのが簡単です

const fn = (target) => {
const f = (arg) => { something(arg) }
if (!target) {
for (const item of getAll()) {
f(item)
}
} else {
f(target)
}
}

シンプルなもののはずなのに内部に関数もあったりでごちゃごちゃしてきた感じがします
毎回 1 回余分に関数呼び出しも入りますし もうちょっと別の方法を考えたいです

関数呼び出しを使わない方針で考えると something 部分は固定でそれより前に処理する対象を 1 つの変数に入れておくと場合分けがあっても 1 つの記述で済みます
今回は一方では for 文で複数回実行するので
for 文の中に書く前提で target が渡されたらそれ単体の配列にします

const fn = (target) => {
const targets = target ? [target] : getAll()
for (const t of targets) {
something(t)
}
}

短くなりましたが target 指定のほうがメイン(の想定)なのにわざわざ配列化するのは無駄な感じがします
それに本来この関数がやりたい something が for の中で常にループするのでやりたいことがパット見分かりづらい感じもします
作り的にはオーバーロードにあたるもので その機能がある言語でのやり方を考えてみます
それらは別々の関数になっていて 引数なし版では for 文の中で引数あり版の関数を呼び出すはずです
その考え方でやってみると

const fn = (target) => {
if (!target) {
for (const item of getAll()) {
fn(item)
}
return
}
something(target)
}

忘れがちな return があったりさっきのより長くなってるのが気になりますが 一番アリかなって気もします
前半後半で分けて見ると 前半は引数チェック的なもので この関数で本来やりたいことじゃない部分
後半が本来やりたい部分で something に引数の target を入れて実行となってます

再帰関数呼び出ししてるので 1 つ前のコードではなくした関数呼び出しをしてしまってますが その関数がやりたいコードを直接実行するようにして それより前に例外的な場合は引数修正して再実行という考え方がしっくり来ました
その関数がやりたいことが for の中やローカル関数内に押し込められるとやりたいことがわかりづらくなりますからね