This may be an old discussion and we have seen some improvements in the past, but I would like to bring it up again.
The issue is that by default, filebeat indentifies files by inode and device id. The problem with the device id is that it is supposed to change after a reboot. In other words device id's may change by design and nobody should rely on them, at least not on standard linux systems.
The path option has limitations when used with rotating files.
The last option with inode and marker works pretty well, but is hard to maintain and error prone to set up.
I therefore opt (again) for the additional option inode_uuid.
From what the code tells, filebeat gets the deviceid by a stats call. Getting the uuid with stats does not always work, but at least with a two step call it should be feasible to get the uuid.
inode_uuid would be a robust solution on linux systems IMO.