The 'linear' in 'linear regression' means linear in the parameters, which isn't necessarily what people normally mean by 'linear' outside of statistics. (To help clarify the issues, it may help you to read through this CV thread: How to tell the difference between linear and non-linear regression models?) The linearity at issue isn't really an assumption, but just a statement of fact about the kind of model it is.
So is there, then, an assumption of the colloquial sense of linearity? Sort of. The model is being fit with the variables you chose and the structure / functional form you chose, and the results are conditional on those choices. That said, you aren't required to simply input the raw form of each variable (call it '$X$'), you can input a transformation, $f(X)$, or several versions of it. It is common, for example, to include both $X$ and $X^2$ in a regression model. This works just fine. The model really does just fit straight lines / flat planes / etc., but they can capture what you need. To see this, it may help you to read my answer here: Why is polynomial regression considered a special case of multiple linear regression?
Regarding homoscedasticity, that is an assumption (see here). The problem with using a model that assumes homoscedasticity with data that include substantial heteroscedasticity is that you are using the information in your data inefficiently to find the best parameter values and to understand the amount of noise in the data / uncertainty in the relationship. That could mean that you have less power to detect an association (see here) or that you have an increased probability of type I errors (see here).