In MySQL 5.7 (and MariaDB 10.2.2 onwards), the InnoDB redo log is not self-contained with respect to some DDL operations.
Most notably, WL#7277 disables the redo logging of data pages in the initial phase of ALTER TABLE…ALGORITHM=INPLACE. (The online_log apply is still being redo-logged.) The presence of a MLOG_INDEX_LOAD record indicates that some data was omitted from the redo log.
Percona implements a workaround. We should look at their implementation.
MDEV-13564 mentions another class of operations that makes the redo log not self-contained: TRUNCATE TABLE and undo tablespace truncation.