The 1971 paper A Catalog of Optimizing Transformations contains this passage:
irreducible subprograms require special handling. (An irreducible subprogram is one which maintains a history, performs I/O operations, can return different function values for identical argument values, or does not return through a standard return point.
This definition doesn't describe what irreducible subprograms have in common, but they seem to correspond (roughly?) to what we would now describe as "effectful" operations. It's a bit tantalising to read this list and then not be referred to any further discussion.
So, in the early 70s, was this the state of the art in terms of discussing effects? Is there a juicier early description of the category? I guess I'm not going to be told that algebraic effects were known already back then. But what was known about this category of operations/subprograms?