Muito bom os exemplos! Ao usar o &&, também podemos evitar problemas usando o Boolean ou o !!. Seguindo os exemplos:

function Cart({ items }) {
  return (
    <div>
      <ul>
        {Boolean(items.length) &&
          items.map((item) => (
            <li key="{item.id}">{`Item: ${item.name} - R$ ${item.price}`}</li>
          ))}
      </ul>
    </div>
  );
}

Ou:

function ErrorHandler({ error }) {
  return !!error && <p>{error.message}</p>;
}