Since in a compact Riemannian manifold $M$ the only totally convex subset is the whole manifold itself, see Closed manifold has no nontrivial totally convex subset?, it should follow that for every point $p\in M$ there exists a geodesic loop starting and ending at $p$ (not necessarily "closing" smoothly). I was looking for a (possibly simple) direct proof of this fact without passing by the general theorem (whose proof is not easy, in my opinion). Thanks.

Here is a standard argument, I learned it from "Comparision Theorems in Riemannian Geometry" by Cheeger and Ebin. It avoids use of infinite dimensional spaces. Choose the smallest $k>0$ such that $\pi_kM\ne 0$. Choose a spheroid which represents a nontricial element of $\pi_kM$. We can assume that the spheroid is swapped by an $\mathbb S^{k1}$parameter family of broken geodesics such that the length of each edge is smaller than the injectivity radius of $M$; denote it by $i_M$. Start a natural curveshortening process  velocity vector of every vertex should depend on the directions and lengths of the two edges coming from it. You have to choose one which keep the lengths of the edges below $i_M$ and such that the rate of length (or energy) decay is estimated through rate of change of the broken geodesic. Note that there is a lower bound for the maximal length of broken geodesics; "maximal" means "maximal in the $\mathbb S^{k1}$family after spending arbitrary time in the process". Say, this value can not go below $i_M$. It follows that after long time in the process, one broken line in the family almost does not change the length. Hence this it almost does not move; the later implies that and all the angles almost $\pi$. Pass to the limit and you get the loop. 

