Q:

htaccess mod_rewrite, difference between [L] and [R=301,L]

So what is the difference? 
Will the browser cache the 301 and remember it? 

A:

The main difference between the flags [L] and [R=301,L] is that the R flag causes an explicit external HTTP redirect (there is one exception) while without the R flag the rule could also cause just an implicit internal redirect, depending on the actual rule and request. 
The optional status code just specifies the type of the redirection response.  301 denotes a permanent redirect:

The requested resource has been assigned a new permanent URI and any
     future references to this resource SHOULD use one of the returned
     URIs.   Clients with link editing capabilities ought to automatically
     re-link references to the Request-URI to one or more of the new
     references returned by the server, where possible.  This response is
     cacheable unless indicated otherwise. 

The two latter sentences do also answer your question, whether such a response is cacheable.