O uso de "fechado" vs. "aberto" reflete se estamos ou não restritos ao uso de uma determinada posição ou estrutura de dados (esta é uma descrição extremamente vaga, mas espero que o resto ajude).
Por exemplo, o "aberto" em "endereçamento aberto" nos diz que o índice (também conhecido como endereço) no qual um objeto será armazenado na tabela hash não é completamente determinado por seu código hash. Em vez disso, o índice pode variar dependendo do que já está na tabela hash.
O "fechado" em "hash fechado" refere-se ao fato de que nunca saímos da tabela de hash; cada objeto é armazenado diretamente em um índice na matriz interna da tabela hash. Observe que isso só é possível usando algum tipo de estratégia de endereçamento aberta. Isso explica por que "hashing fechado" e "endereçamento aberto" são sinônimos.
Compare isso com hashing aberto - nesta estratégia, nenhum dos objetos é realmente armazenado na matriz da tabela de hash; em vez disso, depois que um objeto é hash, ele é armazenado em uma lista separada do array interno da tabela hash. "aberto" refere-se à liberdade que obtemos ao sair da tabela hash e usar uma lista separada. A propósito, "lista separada" sugere porque o hashing aberto também é conhecido como "encadeamento separado".
Resumindo, "fechado" sempre se refere a algum tipo de garantia estrita, como quando garantimos que os objetos são sempre armazenados diretamente na tabela hash (hash fechado). Então, o oposto de "fechado" é "aberto", então se você não tem essas garantias, a estratégia é considerada "aberta".