(directory-files-and-attributes ...) returns the wrong size. If I look
into the C-Code then it appears that the problem is in the function "directory_files_internal" in dired.c. There "...nbytes" and "len" variables are only a integers. Unfortunately I am not able to debug C-Sources.
Thanks for looking into this. I suspect the use of 32 bit integers is only mirroring the return values of the system calls themselves.