Normalmente, o autor de uma obra pode licenciá-la sob mais de uma das licenças de código aberto que você mencionou (o chamado licenciamento duplo). No entanto, parece haver um problema ao fazê-lo sob a política editorial da ACM mencionada, que declara que você seria obrigado a transferir a propriedade dos direitos autorais nos "algoritmos" publicados:
Os autores de algoritmos protegidos por direitos autorais (ou de seus empregadores) são obrigados a transferir os direitos autorais para a ACM após a aceitação do algoritmo para publicação, de acordo com a política da ACM de possuir direitos autorais sobre o material publicado pela ACM.
A política (e o Software ACM e o Contrato de direitos autorais e licença) afirma que "concede aos autores o direito de reutilizar seu material e também concede permissão liberal para a reutilização do software associado para fins não comerciais". Essa restrição para fins não comerciais impediria o autor (IMHO, IANAL) de licenciar novamente sob as licenças de código aberto mencionadas em sua pergunta, pois elas não permitem uma distinção entre uso comercial e não comercial.
Uma possível solução pode ser encontrada na discussão detalhada da Política de Direitos Autorais da ACM :
Em casos especiais em que um autor ou empregador do autor deve manter os direitos autorais, ou quando a ACM não deseja dar sua impressão a um trabalho específico, a ACM pode aceitar uma liberação do proprietário que conceda à ACM a permissão necessária para publicar o trabalho.
Não faço ideia de quantas vezes essas exceções podem ser concedidas para publicação. Se eu estivesse tentando buscar essa exceção, provavelmente argumentaria que já havia licenciado o software sob uma dessas licenças de código aberto e que o ACM poderia ter direitos autorais sobre o trabalho derivado criado pela publicação do artigo.
Eu mencionei IANAL (eu não sou advogado)?