Some ARM systems (mainly servers) do support ACPI; allowing for one image to run on multiple processors and devices.
However… ACPI is apparently a pretty awful thing to implement. When it doesn’t work, or mistakes are made (looking at my own 13th gen HP laptop right now - borked ACPI tables means unpatchable broken sleep on Linux), then it’s pure frustration.
Device trees on the other hand are much more binary. Either everything generally works or it doesn’t at all. It’s a valid approach.