Будет ли скомпилированный код C++ работать на всех архитектурах процессора?
Даже бинарник для х64 не будет работать под х32, что уж говорить о принципиально разных архитектурах. 
В исполняемом файле содержатся машинные команды для конкретной архитектуры процессора. 
Для другой архитектуры нужен другой исполняемый файл.
То же самое актуально и для разных ОС (бинарники для линукс и винды не совместимы). Но, обычно, есть варианты запустить бинарник от другой ОС - виртуализация, wine в линукс, WSL в винде.

Более того, например, если у вас приложение х64 и вы используете какую-то специфическую фичу процессора, которая есть только в определенных моделях процессора, то приложение будет корректно работать только на процессорах поддерживающих эту фичу. Если нужно, в приложении можно предусмотреть проверку процессора и если фича не поддерживается использовать какую-то универсальную реализацию.
Архитектура AMD64 является частным случаем архитектуры x86. Если скомпилировали под архитектуру AMD64, то на 32-битных работать не будет. А если скомпилировали для 32-битных, то будет работать и на 32, и на 64-битных