Как называется такая Git практика и является ли она приемлемой?
Ветка отпочковывается от любого коммита. Обычно руками никто не создает ветку из старых коммитов, делают из последнего свежего.
Просто весь смысл ветки в том, чтобы свою фичу пилить не блокируя мастер или релиз

И когда ты мержишь в мастер, ты не затираешь в нем коммиты, а добавляешь свои изменения.
Если в исходниках в одном и том же месте правили в твоей ветке и в мастере - при попытке мержа получишь конфликт, который надо будет исправить.

P.S. в фичаветку можно периодически мержить из мастера, чтобы держать свою ветку "свежей" и в конце, при мерже в мастер, вероятность конфликтов была меньше.

А так - обычный feature-branch flow
Создать коммит Х2, который отменит все новые изменения master можно так
# Вредоносные действия делаем в своей ветке, 
# так как не можем коммитить напрямую в master
git switch feature
# Якобы подтягиваем изменения из master, но по факту отменяем.
git merge --ff $(git commit-tree -p master -p feature1 -m "X2" feature1^{tree})
# Отправляем Pull Request обратно в master Но зачем? Практика перезатирания чужих правок точно ненормальна.