Es gibt verschiedene Funktionen, um floating points bzw. decimals in dimensions und umgekehrt umzuwandeln. Was davon für dich am besten geeignet ist, hängt davon ab, was du in Wirklichkeit vor hast.
BTW: Verlässt man sich auf Interna von l3kernel (konkret l3fp), kann man die letzte l3-Zeile auch zu \fp_to_dim:n { \l_abc_laenge_dim / \l_abc_zahl_fp } verkürzen. Ich halte persönlich explizite Typumwandlungen jedoch für sauberer. Was man guten Gewissens machen kann, ist die Einsparung von \fp_eval:n in der Zeile, da dokumentiert ist, dass das Argument von \fp_to_dim eine floating point expression sein darf.
Die dimension expressions von expl3 verwenden \dimexpr aus der e-TeX Erweiterung. Diese Primitive erlaubt zwar einige Rechenoperationen (Multiplikation mit einer Ganzzahl, Addition, Subtraktion, Division durch eine Ganzzahl und Klammern), aber die Syntax ist relativ restriktiv. Es wird zusammengefasst das erreicht, was mit \advance, \multiply und \divide möglich wäre.
Beispielsweise muss für die Multiplikation der erste Faktor eine gültige TeX-Länge sein, anschließend folgt ein * und eine Ganzzahl. Multiplikationen mit einer Gleitkommazahl sind nur mit Längenregistern oder geschachtelten \dimexpr möglich, also bspw. 0.8\linewidth.
Also \dim_set:Nn \l_tmpa_dim { 5mm * 3 } wäre möglich (wenn auch wenig nützlich). In normalem plain oder LaTeX würde ich \mydimen=\dimexpr 0.35\dimexpr 5mm\relax\relax verwenden, das entspricht aber nicht dem Stil von expl3.
Am komfortabelsten ist die Verwendung von l3fp, da es automatisch Längen nach pt konvertiert und das Ergebnis als Gleitkommazahl weiterverwendet. Eine Zuweisung einer Länge ist damit ganz einfach, man nutzt einfach \dim_set:Nn \l_tmpa_dim { \fp_eval { 3 * 5mm - 0.35 * 7cm + .2\linewidth } pt } und alles funktioniert wie erwartet und gewünscht (ist aber ein wenig langsamer als \dimexpr).