В целом - да. Конструкция [...someArray, newElement] создает новый массив, включает туда все элементы из someArray, и добавляет newElement в конец нового массива.
Однако, оффтоп заметка: конкретно в данном случае с такой простой логикой (выведение последовательных чисел), список, кажется, излишен. Можно просто хранить цифру-количество элементов и от них плясать через index+1.
Есть нюанс. Вы используете потенциально устаревшие данные. Советую переписать на вот такой вариант:
function ImmutabelArr() {
let [notes,setNotes] = useState([1,2,3,4,5])
let result = notes.map((note,index) => {
return <li key={index}>{note}</li>
})
function addLi() {
setNotes(prevNotes => [...prevNotes, prevNotes.length + 1])
}
return <div>
<ul>
{result}
</ul>
<button onClick={addLi}>add li</button>
</div>;
}