Several mode to write the symbol of a vector

You can use the esvect package, which defines 8 possible arrow tips that you choose through an option:

enter image description here

Here is the result with the default (option d):

    \documentclass[a4paper, 12pt, fleqn]{book}
    \usepackage[utf8]{inputenc}
    \usepackage{mathtools,amssymb,lipsum}
    \usepackage{esvect}

    \begin{document}

    \noindent
    \lipsum[1]
    \noindent
    $\vv{d}$, $\vv{a}$, \lipsum[2]

    \end{document} 

enter image description here


Here is a way:

\documentclass[a4paper,12pt,fleqn]{book}
\usepackage[utf8]{inputenc}
\usepackage{bm}
\usepackage{mathtools,amssymb,lipsum}
\newsavebox\mybox
\newcommand\myVec[1]{\savebox\mybox{\hbox{\ensuremath{\overrightarrow{#1}}}}\ensuremath{\overrightarrow{#1}}{\rule{0pt}{\dimexpr\ht\mybox+3pt}}}

\begin{document}
\lipsum[1]
\noindent$\myVec{f}\bm{\myVec{a}}$\lipsum[1]
\end{document}

enter image description here

But I can't really understand the "possibility of not increasing the line's spacing" and also don't let the arrows overlap the previous line... because for exapmle in your textbooks the technology could be so old that they was just added after the actual text and the author had created/changed his wording in order to not leave an arrow below a character that needs space below the "baseline".