1) Я так не думаю.Я считаю, что это проблема компилятора
2) Вы не можете добавить nil внутри коллекций, поэтому, если вы хотите добавить «заполнитель», обычно используется NSNull
3) Использовать инициализатор JSON
let item1: (String, Any) = ("id", id ?? NSNull())
let result = JSON(elements: item1, item2, ... )
return result