Well yes, obviously one creates and one clones. They take different arguments though, and I couldn’t figure out if I was supposed to pass in <Template1 /> or Template1 or "Template1".
From the docs you can see, that in React.createElement you can pass string/ReactClass ('Template' / Template) and in React.cloneElement you can pass ReactElement (<Template>).
The props will be also handled differently, createElement will have only that you define and cloneElement will have the props from the cloned element + new props.
You need to read the docs better, below it is explained, why it is so. If you pass string 'Template', it will create you an element <template></template>.
Create and return a new ReactElement of the given type. The type argument can be either an html tag name string (eg. ‘div’, ‘span’, etc), or a ReactClass (created via React.createClass).
I suppose if you pass a string, it has to be a known HTML tag.