1. Да, потому что свойство ссылочной прозрачности при работе с IO монадой полностью сохраняется.
2. Да, практически на любом современном языке можно, вопрос в том, насколько он к этому распологает из коробки. На кложуре можно попробовать, скорее всего выйдет.
На расте особо не выйдет или будет очень больно из-за местных проблем с фукнциями, замыканиями и т.п.
ммм, ссылочная прозрачность