The replace flag for defining directives that replace the element
that they are on will be removed in the next major angular version.
This feature has difficult semantics (e.g. how attributes are merged)
and leads to more problems compared to what it solves. Also, with
WebComponents it is normal to have custom elements in the DOM.
It sounds to me like its a combination of complexity vs benefit to maintain support.
And apparently one reason dev were using it because they prefered semantically correct markup to be injected , thus replacing the custom directive tag.
Read the comments lower down on that link and apparently many people want it to stay.
I'd say it's a good thing that is has been removed because it prevents you from exposing inner workings of a directive (component) to the outside world. Look at your template as being a shadow DOM and compare your directive with normal HTML elements like a button You don't see all kinds of classes being added and styling being applied to those elements either when you hover or click them. It's all 'hidden' inside. Because support for shadow DOM is somewhat limited at the moment it is kind of a workaround but it already enables you to be future proof.
Caitp-- It's deprecated because there are known, very silly problems with replace: true, a number of which can't really be fixed in a reasonable fashion. If you're careful and avoid these problems, then more power to you, but for the benefit of new users, it's easier to just tell them "this will give you a headache, don't do it".