First: note that React has a special syntax for stateless functional components. Your sample code is not using that syntax and so React does not know your components are stateless.
This is not a stateless functional component:
class BsDiv extends React.Component{
render(){
return (<div className={this.props.cls}>{this.props.children}</div>)
}
}
These are stateless functional components:
// component is just a function
const BsDiv = props => <div className={props.cls}>{props.children}</div>
// Using object destructuring syntax
const BsDiv = ({cls, children}) => <div className={cls}>{children}</div>;
Second: React does not yet apply any significant optimizations for Stateless functional components.
From their blog (emphasis mine):
This pattern is designed to encourage the creation of these simple components that should comprise large portions of your apps. In the future, we’ll also be able to make performance optimizations specific to these components by avoiding unnecessary checks and memory allocations.
So, by writing stateless functional components, you are opting in to future optimizations React makes for this "simpler" components.
Here is some more information on possible future optimizations:
https://github.com/facebook/react/issues/5677#issuecomment-165125151
How will React 0.14's Stateless Components offer performance improvements without shouldComponentUpdate?