When the shell searches for a command name in the PATH and finds a shell script, POSIX specifies that it shall pass the command name as argv and in the child shell script, $0 shall be set from argv (POSIX Standard, section 18.104.22.168, line 779-784).
However, for an LSB shell, the system may implement either this behavior or $0 may be set to an absolute pathname of the shell script. 
When PATH is used to locate a file for the dot utility, and a matching file is on the PATH but is not readable, the behavior is undefined (unlike POSIX which apparently requires the shell to continue searching through the rest of the PATH, POSIX Standard, section 3.14.4, line 1493-1498).
For filename globbing, globalized implementations shall provide the functionality defined in [POSIX.2], with the following exceptions:
Range expression (such as [a-z]) can be based on code point order instead of collating element order.
Equivalence class expression (such as [=a=]) and multi-character collating element expression (such as [.ch.]) are optional.
Handling of a multi-character collating element is optional.
For example, bash behaves in the following way:
When bash is executing an executable rather than a shell script, it seems to behave in the POSIX way.