1. Да, современные операционные системы игнорируют сегментную организацию в пользу плоской модели памяти, разбитой на страницы. Но оставили пару сегментов для виртуальных машин. Этим дело и ограничивается. Сегментная организация памяти была хороша в те времена, когда нужно адресовать память больше, чем позволяет 16-разрядный процессор. К тому же плоская модель память удобней и проще для переносимости приложений в различные архитектуры.
2. PE -- это, по сути, структура самой программы при загрузке, указывает операционной системе, что и куда размещать в памяти и что подгрузить. Что-то вроде таблицы трансляций.
![ae48911f15de4bf69ff19d90dd786df2.jpg](https://habrastorage.org/files/ae4/891/1f1/ae48911f15de4bf69ff19d90dd786df2.jpg)
В Linux используется ELF-формат, если не ошибаюсь.
3. Для гарантированной работы приложения в системе обычно используют соглашения и рекомендации. В 32-разрядной системе ещё можно получить к ним доступ. Но лучше их не трогать. Так как никто не знает последствия. Но на уровне системного программирования знание может быть очень полезным, особенно в сфере безопасности. А вот в 64-разрядной системе они выключены кроме пары сегментных регистров для контекста.