How to correctly understand submanifolds? First a disclaimer: the particular interest that led me to this is the use of submanifolds in General Relativity, in particular spacelike hypersurfaces. This idea used a lot in GR led me to seek a better understanding of submanifolds.
So, the point is that up to now my understanding of submanifolds has been quite "informal", mostly based on examples, and most examples are something like: pick a manifold $M$ a chart $(x,U)$ and hold some coordinate functions constant. This defines a submanifold.
Now this is not a good understanding of the subject. So searching for a formal understanding I've tried Spivak's book. He defines actually four things:

Definition 1: A differentiable function $f : M\to N$ is called an immersion if the rank of $f$ is $\dim M$.
Definition 2: A subset $M_1\subset M$ together with a differentiable structure that need not be inherited from $M$ is called an immersed submanifold if the inclusion $i : M_1\to M$ is an immersion.
Definition 3: An embedding is an immersion $f: M\to N$ which is injective and a homeomorphism over its image.
Definition 4: A submanifold of $M$ is an immersed submanifold $M_1$ such that the inclusion $i : M_1\to M$ is an embedding.

Other authors do differently. For example, Sean Carroll in his Spacetime and Geometry says:

Consider an $n$-dimensional manifold $M$ and an $m$-dimensional manifold $S$, with $m\leq n$, and a map $\phi : S\to M$. If the map $\phi$ is both $C^\infty$ and one-to-one, and the inverse $\phi^{-1} : \phi(S)\to S$ is also $C^\infty$, then we say that the image $\phi(S)$ is an embedded submanifold of $M$. If $\phi$ is one-to-one locally but not necessarily globally, then we say that $\phi(S)$ is an immersed submanifold of $M$. When we speak of "submanifolds" without any particular modifier, we are imagining that they are embedded.

The major difference here is: for Spivak, submanifolds are subsets obeying certain properties (that is what I would expected), for Carroll, they are other manifolds which we map into subsets, which seems quite odd. Strangely, I've read some authors saying that this is one concept that is really done different by each author.
What I find confusing is that the idea of a "sub-structure" in general is quite straightforward. In Algebra defining subgroups, vector subspaces and so forth is quite easily done, it is just a subset with a straightforward property that makes it "inherit" the structure of the first set. The same happens with topology when defining topological subspaces with the relative topology.
Submanifolds seems different. One author resorts to "external" sturcture, namely, another manifold. Spivak also says that the "submanifolds" might have another differentiable structure. This all confuses me. For example: what if we have a subset and want to inherit the structure of the original manifold? After all that is what is done in all those examples I've mentioned.
How to correctly understand submanifolds, the various definitions and the relations between them? Why this is a good definition of submanifold? How to truly understand why this is the correct definition of a sub-structure for manifolds?
 A: First of all, your definition 1 is a bit faulty, you should say that $rank(df)_x$ is constant equal to $m=dim(M)$ at every point $x\in M$. With this in mind, these are equivalent definitions. However, I do not like either one of these definitions and for several reasons. Spivak's definition - because it depends on a nontrivial theorem (the immersion theorem), while a definition this basic should not depend on anything nontrivial. Also, for the reason that you stated. More importantly, I do not like both definitions - because they utterly fail in other, closely related situations. For instance, if I were to define the notion of a topological submanifold in a topological manifold along these lines, Spivak's will fail immediately (what is the rank of the derivative if I do not have any derivatives to work with?); Carroll's definition will fail because it will yield in some cases rather unsavory objects, like Alexander's horned sphere in the 3-space. The same if I were to use triangulated manifolds and triangulated submanifolds, algebraic (sub)varieties and analytic (sub)varieties. 
Here is the definition that I prefer. First of all, what are we looking for in an $n$-dimensional manifold $N$ (smooth or not): We want something which is locally isomorphic (in whatever sense of the word isomorphism) to an $n$-dimensional real vector space (no need for particular coordinates, but if you like, just $R^n$). Then an $m$-dimensional submanifold should be a subset which locally looks like an $m$-dimensional vector subspace in an $n$-dimensional vector space. This is our intuition of a submanifold in any category (smooth, topological, piecewise-linear, holomorphic, symplectic, etc) we work with. Once you accept this premise, the actual definition is almost immediate: 
Definition. Let $N$ be a smooth $n$-dimensional manifold. A subset $M\subset N$ is called a smooth $m$-dimensional submanifold if for every $x\in M$ there exists an (open) neighborhood $U$ of $x$ in $N$ and a diffeomorphism $\phi: U\to V\subset R^n$ ($V$ is open) such that $\phi(M\cap U)= L\cap V$, where $L$ is an $m$-dimensional linear subspace in $R^n$. (If you like coordinates, assume that $L$ is given by the system of equations $y_1=...y_{n-m}=0$.)  
This is completely intrinsic. Next, you prove a lemma which says that such $M$ has a natural structure of an $m$-dimensional smooth manifold with topology equal to the subspace topology and local coordinates near points $x\in M$ given by the restrictions $\phi|(U\cap M)$. Then you prove that with this structure, $M$ satisfies the other two definitions that you know.
Remark. Note that this definition will work almost verbatim if I were to deal with topological manifolds: I would just replace "a diffeomorphism" with "a homeomorphism. If I were to work with, say, complex (i.e. holomorphic) manifolds, I would replace $R^n$ with $C^n$ (of course), use complex vector subspaces and replace "diffeomorphism" with 
"a biholomorphic map". An so on. 
Now, to the question why is it so much more complicated than the concept of a subgroup or a submodule or any other algebraic concept you can think of. This is because manifolds have a much richer structure. To begin with, they are topological spaces. (Notice that every submanifold is equipped with the subspace topology, so this has to be built in.) Then, the notion of vector spaces has to be used at some point. Next, there is the "local" thing (local charts).... 
