Актуально ли сейчас низкоуровневое программирование?
Низкоуровневое программирование всегда актуально в ситуации выжимания последних крох производительности из конкретной конфигурации железа.
Довольно таки небольшое количество системных задач доходит до этого - потому как очень часто есть альтернативы в виде горизонтального масштабирования. Закупка железа дешевле поддержки ПО.
Отдельная ниша - программирование микроконтроллеров, но и там проще брать железом, а не софтом.
Знать, как все утроено под капотом нужно, но писать на ассемблере - очень не стоит, сильно дорогое решение.
Оптимизация, программирование микроконтроллеров, написание шеллкодов, или тупо похвастаться: "Смотрите все! Я написал супер-пупер маленькую и быструю программу!". Других сфер применения асма в современности не знаю.