Проблема у вас в том, что вы после удаления снова читаете значения из инпутов добавления и заново добавляете этот ключ. Самое простое - чистить инпуты после добавления:
function renderObj(e) {
e.preventDefault();
let str = '';
let inputKey = document.querySelector('.input-key').value;
let inputValue = document.querySelector('.input-val').value;
if (inputKey !== '' && inputValue !== '') {
obj[inputKey] = inputValue;
for (let key in obj) {
str += `Ключ: ${key}, Значение: ${obj[key]} <br>`
}
}
output.innerHTML = str;
document.querySelector('.input-key').value = '';
document.querySelector('.input-val').value = '';
}
Но вообще, конечно, ваш код
нужно переделать. Должно быть три функции - одна на добавление ключа в объект, другая на удаление и третья на рендеринг объекта. Сейчас у вас первая и третья смешаны в одну, отсюда и проблемы.