The caveat is (and I cannot understand why) is that the cursor intangibility does not kick in when you do C-x C-f for the first time! It kicks in only from the second C-x C-f onwards.
The following steps try to explain what I mean (on latest build of emacs-25):
1. emacs -Q
2. Eval the above progn form
3. C-x C-f C-x h (The read-only portion also gets selected!)
4. C-g
5. C-x C-f C-x h (NOW the read-only portion does not get selected as expected)
So why is the cursor-intangible-mode not enabled in the minibuffer the first time (Step 3)?
Also, would it be wise to enable cursor-intangible-mode globally? If not, how can we have that mode always enabled in the minibuffer?
-------------------------
On the other hand, I have tested the below as an alternate solution (probably better too as I am not enabling the mode globally) to always work:
(progn
(setq minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt))