Eu diria que, em ambos os casos, estamos perante complemento de nome, mais propriamente, na nomenclatura em uso em Portugal, complemento determinativo.
O facto de em «Choro de criança» estarmos perante uma realidade mais vasta, ou abstracta, não altera a função sintáctica.
Quando, como é o caso, o nome nuclear derivar de um verbo (nos exemplos em análise, chorar) poderá transformar a frase e verificar se o nome que está encaixado no sintagma preposicional é um constituinte obrigatório da frase. Se for, então é complemento.
Podemos transformar «o choro da criança» em «a criança chora», e «choro de criança» em «uma criança chora».
Bom trabalho!