GetManufacturersByCategoryIdAsync()method cache the manyfacturers of the category. The cache key only has the category id as the parameter
var key = _staticCacheManager
.PrepareKeyForDefaultCache(NopCatalogDefaults.ManufacturersByCategoryCacheKey, categoryId.ToString());
The problem occurs when the products has ACL constraints. Since the ACL constraint limits different products to different customer roles, the product list can be differnet for diifferent customer thus the manufacturers available for those products will be different. But because of the caching via category id, the first request is cached and the same list of manufacturers are served to all the customers . So the cache key should take the customer role/id into consideration incase the ACL constraint is applied.