I'm not opposed to a fresh syntax, but I do believe the current implementation can be used for composition. The parser for endpoint strings is simplistic, like Glyph points out, but there is nothing preventing it from having nested endpoint definitions. We used the existing syntax when writing the HAProxy endpoint wrapper:
https://github.com/twisted/twisted/blob/trunk/src/twisted/protocols/haproxy/_parser.py.
Granted, this case doesn't come with any configuration options but it shows a potential path for adding wrapping functionality in the current implementation. I think are some downsides when it comes to args, kwargs management. To support them across multiple, arbitrary nested endpoints the kwargs would need to have non-colliding names and the wrapper would need to do some amount of introspection on args to determine if the leading values are for it or another endpoint.
I don't think the developer experience would be a good one, but there _is_ a way to compose endpoints if you're set on doing so.