1. 2019-11-15

There is no such problem using ntheorem instead of amsthm. Note ntheorem has a compatibilty mode with amsthm:

\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{amssymb}
\usepackage{empheq}
\usepackage[thmmarks, amsmath, thref, amsthm]{ntheorem}
\usepackage{dsfont}
\theoremstyle{plain}
\newtheorem{lemma}{Lemma}
\theoremsymbol{\ensuremath{\square}}
\newtheorem{lemmaqed}[lemma]{Lemma}

\begin{document}

\begin{lemmaqed}
\begin{itemize}
\item $a²+b²=c²$
\item $a²+b²=c²$
\end{itemize}
\end{lemmaqed}

\begin{lemmaqed}
\begin{align*}
a²+b²=c²
\end{align*}
\end{lemmaqed}

\begin{lemmaqed}
$a²+b²=c²$
\end{lemmaqed}

\end{document}


One might as well define a lemma environment, which by default has a qed-symbol at the end. This qed-symbol may be for deactivated for specific environments with the directive \NoEndMarks. Also, the symbol is easily customised on a per-theorem basis.