Da für TeX die Abbildung einfach nur ein rechteckiger Kasten ist, gibt es kein Paket und wird es vermutlich auch in den nächsten Jahren kein Paket geben, dass die tatsächliche Form der Abbildung analysiert, und entsprechend dieser Form einen Umfluss ermöglicht. TeX selbst bietet aber mit \parshape eine Anweisung, die es erlaubt die Form
eines Absatzes zu verändern. Damit wäre es möglich, so etwas manuell zu machen:
\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage{graphicx}
\makeatletter
\newcommand{\icon}[2][\relax]{
\noindent
\ifx\relax#1\relax% Wenn das optionale Argument nicht verwendet wird oder
% leer ist, oder \relax ist, dann wird von einer
% quadratischen Abbildung ausgegangen.
\hangindent=3.5em
\hangafter=-3
\hskip-3.5em
\raisebox{\dimexpr\ht\strutbox-\totalheight}[\ht\strutbox][\dp\strutbox]{%
\includegraphics[width=3em,height=3em]{#2}%
}%
\enskip
\else
% Das optionale Argument enthält eine korrekte \parshape-Angabe
\raisebox{\dimexpr\ht\strutbox-\totalheight}[\ht\strutbox][\dp\strutbox]{%
\includegraphics[width=3em,height=3em]{#2}%
}\par\nobreak\vskip\dimexpr-\baselineskip-\parskip\relax\nobreak
\parshape #1
\noindent
\fi
\ignorespaces
}
\makeatother
\begin{document}
\icon{sword}\blindtext
\icon[4 % Es folgen Angaben für min. 4 Zeilen
3.5em \dimexpr \linewidth-3.5em\relax % 1. Zeile 3.5em einrücken und entsprechend kürzen
2.5em \dimexpr \linewidth-2.5em\relax % 2. Zeile 2.5em einrücken und entsprechend kürzen
1.5em \dimexpr \linewidth-1.5em\relax % 3. Zeile 1.5em einrücken und entsprechend kürzen
0em \linewidth % ab der 4. Zeile nicht mehr einrücken und volle Länge
]{sword}\blindtext
\end{document}
Das ganze funktioniert in dieser trivialen Form nur, wenn der erste Absatz lang genug ist. Anderenfalls wird nicht etwa unter dem Bild weitergemacht, sondern ggf. mit dem nächsten Absatz in das Bild hineingeschrieben. Es funktioniert auch nur korrekt, wenn am Ende der Seite noch genügend Platz vorhanden ist. Sonst wird das Bild ggf. in den unteren Rand hineingemalt. Man könnte zumindest das ändern, indem man dem Bild mehr Höhe gibt (\raisebox) und dafür den negativen \vskip größer macht.
Dein Problem mit Umbruch nach Überschrift wird von wrapfigure verursacht. Dein Problem mit \paragraph liegt daran, dass auf dieser Ebene Spitzmarken gesetzt werden und keine Überschriften-Zeilen. Diese Ebene ist also ggf. umzudefinieren.