Normalmente, el autor de una obra puede licenciarla bajo más de una de las licencias de código abierto que usted menciona (las llamadas licencias dobles). Sin embargo, parece haber un problema al hacerlo en virtud de la política editorial de ACM referenciada, que establece que estaría obligado a transferir la propiedad de los derechos de autor en los "algoritmos" publicados:
Los autores de algoritmos con derechos de autor (o sus empleadores) están obligados a transferir los derechos de autor a ACM tras la aceptación del algoritmo para su publicación, de conformidad con la política de ACM de poseer los derechos de autor sobre el material publicado de ACM.
La política (y el Acuerdo de licencia y derechos de autor y software de ACM) establecen que "otorga a los autores el derecho de reutilizar su material, y también otorga un permiso liberal para la reutilización del software asociado para fines no comerciales". Esta restricción a fines no comerciales evitaría que el autor (en mi humilde opinión, IANAL) vuelva a otorgar licencias bajo las licencias de código abierto mencionadas en su pregunta, ya que no permiten una distinción entre el uso comercial y no comercial.
Se puede encontrar una posible resolución en la discusión detallada de la Política de derechos de autor de ACM :
En casos especiales en los que un autor o el empleador del autor deben conservar los derechos de autor, o cuando ACM no desea otorgar su autorización a un trabajo en particular, ACM puede aceptar una autorización del propietario que le otorgue a ACM el permiso que necesita para publicar el trabajo.
No tengo idea de con qué frecuencia se pueden conceder tales excepciones para su publicación. Si intentara buscar una excepción, probablemente argumentaría que ya había licenciado el software bajo una de esas licencias de código abierto, y que el ACM podría tener derechos de autor en el trabajo derivado creado por la publicación del artículo.
¿Mencioné IANAL (no soy abogado)?