Within the foundation API, you can call:
FileFolderService.resolveNamePath(NodeRef rootNode, List pathElements)
FileFolderService.resolveNamePath(NodeRef rootNode, List pathElements, Boolean mustExist)
Internally, it uses a search loop pattern, probably similar to what you mentioned you're already doing. Then, if you want to just go through searches, you could use this other API:
SearchService.query(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, SearchService.LANGUAGE_XPATH, "/app:company_home/cm:path/cm:to/cm:content")
An OOTB remote API is the org/alfresco/cmis/item.get
web script which offer, among others, the following URL templates:
/cmis/s/{store}/arg/p?path={path}&filter={filter?}&returnVersion={returnVersion?}&includeAllowableActions={includeAllowableActions?}&includeRelationships={includeRelationships?}&includeACL={includeACL?}&renditionFilter={renditionFilter?}
/api/path/{store_type}/{store_id}/{nodepath}?filter={filter?}&returnVersion={returnVersion?}&includeAllowableActions={includeAllowableActions?}&includeRelationships={includeRelationships?}&includeACL={includeACL?}&renditionFilter={renditionFilter?}
I wouldn't recommend it for a performance critical path, though, as CMIS is quite chatty. I'd probably develop a custom web script that leverages the above foundation APIs.