Thanks! After looking at your post and going through the ECL manual again, I now see the example you mentioned: https://ecl.common-lisp.dev/static/manual/System-building.html#Build-it-as-an-si...
I'm still surprised that specifying a system entry point doesn't work for ECL, but at least there appears to be a bug tracking that behavior (although it's unclear to me whether it's an issue with ECL, ASDF/UIOP, or actually just expected behavior that I don't understand): https://gitlab.com/embeddable-common-lisp/ecl/-/issues/686