It's meaningless.
That's probably a bug with `ksh93`, if there're too many arguments for a unary operator and the unary operator start with `-`, then the second one will pick as the argument and the rest will be ignored:
$ ksh -c '[ -f a.out foo bar ] && echo yes'
yes
$ ksh -c '[ -e a.out foo a ] && echo yes'
yes
Checking the source of [`test`][1] confirm that behavior.
Also doing `strace`:
$ { strace -p "$$" & sleep 1; [ -f a.out -size +0 ]; kill "$!"; }
[1] 18467
Process 18455 attached
restart_syscall(<... resuming interrupted call ...>) = 0
stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("a.out", {st_mode=S_IFREG|0755, st_size=8320, ...}) = 0
kill(18467, SIGTERMProcess 18455 detached
<detached ...>
---
if you want to check whether a file exist and have size greater than 0, then standard shells have `-s` test operator:
[ -s file ] && echo 'file exist and size greater than 0'
---
`ksh88` seems to have the same bug. With my Solaris 10 VM:
$ ksh -c '[ -f a.out foo bar ] && echo yes'
yes
$ strings /usr/bin/ksh | grep -i version
@(#)Version M-11/16/88i
---
Pre-POSIX shells also behave like that, include Bourne shell in Solaris 10, the heirloom Bourne shell, Schily osh and Schily sh.
[1]: https://github.com/att/ast/blob/master/src/cmd/ksh93/bltins/test.c#L148