You almost certainly don't want a line break after a centered dot, so it makes sense using a penalty that can be later examined.
\documentclass[fontsize=8pt]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{newunicodechar}
\newunicodechar{·}{\chejnikcdot}
\makeatletter
\newcommand{\chejnikcdot}{%
\ifnum\lastpenalty=10042
\kern-0.06667em\relax % dots should always be kerned
\fi
\textperiodcentered
\@ifnextchar|{\kern\chejnikkern\relax}{\penalty10042 }%
}
\newcommand{\closeupdotbar}{%
\renewcommand\chejnikkern{-0.06667em}%
}
\newcommand\chejnikkern{0pt} % default
\begin{document}
\begin{tabular}{ll}
No kerning & hug\textperiodcentered sjóna\textperiodcentered\textperiodcentered|maður \\
Kerning & hug·sjóna··|maður \\
Kerning plus & \closeupdotbar hug·sjóna··|maður
\end{tabular}
\end{document}
The \closeupdotbar changes (locally) the kerning between a centered period and the vertical bar. In normal text you can do
{\closeupdotbar hug·sjóna··|maður}
for the special cases. Other interfaces are possible.
The \chejnikdot macro looks back: if it sees a penalty item with value 10042, it means that a centered dot has been typeset, so the macro applies a kern. Then it typesets the centered dot and issues the penalty that, besides being a signal, prohibits line breaks at the spot.

·\hspace{-1pt}|? – David Carlisle Jan 15 '16 at 12:32\hspace{-0.06667em}now. – chejnik Jan 15 '16 at 12:38