rsync -avzL --no-o --no-g ./* user@example.org:~/path/to/folder Expected: Either it should copy transfer all files in the current directory and subdirectories recursively, including hidden files (i.e. whose name starts with a dot) or it may omit by default all hidden files, from both the current directory and the subdirectories, and you could use an --include rule to explicitly include hidden files (or there may exist a dedicated option). Observed: hidden files (whose name starts with a dot) in the current directory are not sent. However, hidden files in all the subdirectory *are* transferred. That's inconsistent and doesn't make any sense.
Drop the * in your source parameter.
And could you explain how that is the expected behavior?
Simple... source == copy the source directory source/ == copy the contents of the directory source/* == copy everything that your shell globs that wildcard into. IOW, ./* won't copy anything that "echo ./*" doesn't list. Having a * in there also short-circuits --delete.
As noted, this is because your shell expands the wildcard.