Using an Emacs without any initialization files, and the (put-text...
code you provided, I can delete characters at the beginning of the line with M-x delete-char (C-d), and delete characters at the end of the line with M-x backward-delete-char (DEL (well, that's really delete-backward-char
)).
Edited upon clarification of question:
These two pieces of advice will delete the entire intangible region:
(defadvice delete-char (around delete-char-intangible activate)
"when about to delete a char that's intangible, delete the whole region
Only do this when #chars is 1"
(if (and (= (ad-get-arg 0) 1)
(get-text-property (point) 'intangible))
(kill-region (point) (save-excursion (forward-char 1) (point)))
ad-do-it))
(defadvice delete-backward-char (around delete-backward-char-intangible activate)
"when about to delete a char that's intangible, delete the whole region
Only do this interactively and when #chars is 1"
(if (and (= (ad-get-arg 0) 1) (> (point) (point-min))
(get-text-property (- (point) 1) 'intangible))
(kill-region (point) (save-excursion (backward-char 1) (point)))
ad-do-it))
The advice checks to ensure that the command is being called with an argument of 1, and only then will delete the entire intangible region, otherwise it behaves as normal.