Рассмотрим:
identical(integer(0), -integer(0))
# [1] TRUE
Итак, на самом деле вы выбираете ничего, а не удаляете ничего.
Если вы хотите удалить ничего, вы можете использовать большое отрицательное целое число, например, максимально возможное.
df[, -.Machine$integer.max]
# x y
# 1 1 2
# 2 2 3
# 3 3 4
# 4 4 5
# 5 5 6