let hoge: String? = nil
let foo: String? = "foo"

var dict = [String: Any]()

if let hoge = hoge {
    dict["hoge"] = hoge
}

if let foo = foo {
    dict["foo"] = foo
}

print(dict) // => ["foo": "foo"]

上記のような
オプショナルな値が入っていた場合のみアンラップしてディクショナリに登録していく処理をもっとシンプルにしたいと考え、いろいろ試していると下記のような挙動を発見しました。

let hoge: String? = nil
let foo: String? = "foo"

var dict = [String: Any]()

dict["hoge"] = hoge
dict["foo"] = foo

print(dict) // => ["foo": "foo"]

nilである dict["hoge"] = hoge の処理が無視されているようです。

これは安全な書き方なのでしょうか?

https://developer.apple.com/documentation/swift/dictionary

Update an existing value by assigning a new value to a key that already exists in the dictionary. If you assign nil to an existing key, the key and its associated value are removed.

によるとnilの代入は削除を意味しているようです。
削除ではない今回のような初期化ぽい使い方をしても問題ないでしょうか?