[OT] *proper* string tests for sh/dash shells?

a bit off-topic, but i'm writing a number of utilities and shell
functions for future classes involving the BBB, and i'm looking at a
pile of existing scripts in current BBB images, and i want to clarify
at least one point about shell programming to make sure i'm not using
non-standard shell structures.

  i see a lot of testing a variable for being empty/unset or not like

  if [ ! "x${VAR}" = "x" ] ; then
  linux command

which is clearly testing if the variable ${VAR} has an actual value.

  for brevity, i prefer doing something like this, which turns three
lines into one and makes printed scripts much tighter:

  [ -z "${VAR}" ] || linux command
  [ -n "${VAR}" ] && linux command

  now, regardless of whether one is using sh, bash or dash, i'm
*moderately* sure that the above string tests are POSIX so they should
be safe, yes? is there any reason i should avoid that second set of
string tests?