Что ж, проблема в неправильном расположении (кажется, нарушены ограничения) кнопки панели навигации после закрытия листа
Это хорошо видно в отладке иерархии представлений:

Вот исправление (обходной путь, конечно, но безопасный, потому что даже после исправления проблемы он продолжит работать). Идея состоит не в том, чтобы бороться со сломанной версткой, а просто в создании еще одной кнопки, поэтому движок верстки сам удаляет старые плохие кнопки и добавляет новую, обновляющую разметку. Инструмент для этого достаточно известен - используйте .id()

Итак, модифицированный код:
struct ContentView: View {
@State var showSheetView = false
@State private var navigationButtonID = UUID()
var body: some View {
NavigationView {
Group {
Text("Master")
Button(action: { self.showSheetView.toggle() }) {
Text("Button 1")
}
}
.navigationBarTitle("Main")
.navigationBarItems(trailing: Button(action: {
self.showSheetView.toggle()
}) {
Text("Button 2").bold() // recommend .padding(.vertical) here
}
.id(self.navigationButtonID)) // force new instance creation
}
.sheet(isPresented: $showSheetView) {
DetailView(isPresented: self.$showSheetView)
.onDisappear {
// update button id after sheet got closed
self.navigationButtonID = UUID()
}
}
}
}