Como resolver?

O ponto chave é a separação das palavras. Além disso, o desafio facilita ao deixar claro que a string deve ficar toda minúscula e que conterá apenas letras sem acento e espaços.

Resolução

Para conseguir inverter apenas as letras das palavras separadamente precisamos que elas sejam separadas e o método split pode nos ajudar com isso. Até agora usamos ele para separar todos os caracteres, mas também podemos fazer ele dividir uma string usando caracteres específicos como o espaço " ":

function invertWords(str) {  const wordsArray = str.split(' ')
  const invertedWords = wordsArray.map(word => {
    const lowerCaseWord = word.toLowerCase()
    return lowerCaseWord.split('').reverse().join('')
  })
  
  return invertedWords.join(' ')
}

Refatorando

Como sempre, podemos encadear as funções. Além disso, também podemos deixar nosso código mais organizado ao criar uma função específica para inverter uma palavra e passar ela como callback ao invés de declarar a função inline:

function invertWord(word) {
  return word.toLowerCase().split('').reverse().join('')
}

function invertWords(str) {
  return str.split(' ').map(invertWord).join(' ')
}